Architectural principles

Architectural principles are crucial in software development for several reasons.

How, subject by subject, does an infrastructure platform like Dataceen fit in this context?

Risks

Reusability and Flexibility

Security

Reliability and Availability

Service-Oriented Architecture (SOA) and Microservices

Compliance

Dataceen runs in modern scalable environments like Kubernetes etc. The services in Dataceen each have their own specific task and scale independently from each other. Databases scale independently from Dataceen and can be separated into different areas with different performance requirements.

Scalability

Dataceen runs in modern scalable environments like Kubernetes etc. The services in Dataceen each have their own specific task and scale independently from each other. Databases scale independently from Dataceen and can be separated into different areas with different performance requirements.

Modularity

Avoid unnecessary copying of data

Inconsistency in data is historically one of the biggest data problems in large organizations. The architectural goal here is that we should avoid unnecessary copying of data. This can be avoided since datascenes always fetch the data from the same place.

Loosely coupled systems

Event-Driven Architecture

Subsystems or components should depend on each other to the least extent practicable. Loose coupling reduces the risk that a change made in one subsystem, such as a database or user interface, creates unanticipated changes in other parts.
In Dataceen, client systems interact through data; it doesn’t get looser than that.

Encapsulation

Separation of concerns

Dataceen is an environment optimized for data consumption by multiple clients. Performance is achieved using modern databases and search engines. Since it takes a lot of load off Master Data Systems, they usually also increase their performance.

This means this is the only system that can manipulate this data.
In Dataceen, the security system controls access to all data, assuring that only systems with correct access can change it.

Each system shall control the data it is ‘master’ of

Performance Optimization

Maintainability

Avoid unnecessary copying of data

Inconsistency in data is historically one of the biggest data problems in large organizations. The architectural goal here is that we should avoid unnecessary copying of data. This can be avoided since datascenes always fetch the data from the same place.

Not a ‘black box’

One of the essential characteristics of a datascene is that it must NOT be a black box. All data handled by the datascene must be stored in an open, well-defined format at locations defined by the business. If the datascene software is removed, all data must be intact and accessible using standard data connections.

In today's world, mobile devices have become the primary way people access the digital world of information. Users encounter various bandwidth restrictions around the world, with some using 5G and others still having sporadic access. Depending on the size and complexity of an app, it may need to be designed to work with various network conditions, including low-bandwidth networks. Therefore, it’s essential to provide an environment where applications can fetch only the data they are interested in and do so with as few calls as possible (= few roundtrips and no over-fetching of data)
Dataceen APIs are based on GraphQL, ensuring the above.

Mobile friendly

Each system should own its data model

This could be considered a part of ‘Loosely coupled systems’ and rightfully so, but we want to emphasize this so that any system internally separates its internal data model from its contract to the world outside. The contract (API definition) between the master data system and the datascene is a joint venture.

Separation of concerns

Creating and managing master data is technically very different from providing business-friendly ways to consume it. Implementing datascenes can take care of the consuming part, taking the load of master data systems.

We don’t want large monolithic systems that are expensive to maintain. Datascenes, consisting of several microservices, each separately deployable, lightweight, and with a straightforward task, fit well in any modern infrastructure.

Non-monolithic