Data-oriented architecture (DOA)

This architectural style was first described by Rajive Joshi in a 2007 whitepaper from infrastructure software company Real-Time Innovations (RTI), and later in a 2017 paper by Christian Vorhemus and Erich Schikuta at the University of Vienna.

A data-oriented architecture can be summarized as a system that uses a monolithic data store as its main source of state, but in which multiple loosely-coupled stateless services act upon that central store.

Thus, a DOA is a hybrid of [monolithic and service-oriented (and especially microservice) designs.

Rather than federating data stores for each service, DOA mandates describing the state layer in terms of a single, centrally-managed global data schema.

One of the big advantages of this design pattern is the ease with which data consistency can be maintained across the system. And component-to-component interaction is minimized, favoring data sharing through the central store, potentially reducing overall latency in the system.

The main trade-offs are the greater potential for the central data store to become a performance bottleneck and single point of failure. Scaling techniques like sharding and replication can be used to mitigate these risks, but they can be harder to implement in monolithic stores.