Chapter 4. Discussing Data-Centric Architectures
So far, we've discussed what a Data Ecosystem looks like, the guiding principles of a Data-Centric architecture, and the application styles and architectural patterns most relevant in Data-Intensive Systems. One of the things that we have mentioned, mostly implicitly, is that Data-Centric architectures are distributed in Nature.
Put simply, a Distributed System is a collection of inter-related components, each having a very specific responsibility, that communicate with each other via a well-defined protocol (such as HTTP or MQ), running on multiple machines (either virtual or physical) that, from the outside, look like a single system.
From this definition of a Distributed System, we can pick up few characteristics of a Distributed System:
- The different components in a Distributed System have a well-defined single functional responsibility that they perform well and then forward the output of performing the responsibility to the next component...