By their nature, real-time architectures are layered systems that rely on several loosely coupled systems to achieve their goals. There are a variety of reasons for this structure, from maintaining the high availability of the system in an unreliable world to service requirements and managing the cost structure of the architecture itself.
The remainder of the first section of this book introduces software, frameworks and methods for dealing with the various elements of these architectures. This chapter serves as the blueprint and foundation for the architecture. First, the various components of the architecture are introduced. These usually, but not always, correspond to separate machine instances (physical or virtual). After these components have been introduced, they can be discussed in the context of the primary features of a real-time architecture: high availability, low latency, and horizontal scalability.