The software architecture of the Broker-Engine (and Exchange-Engine) consists of three tiers - the interface, the application, and the database tiers.
The interface and application-tiers are completely stateless, with state only being persisted in the database-tier. The scalability and availability of the entire solution is therefore limited only by the scalability and availability of the underlying database software - Microsoft's SQL Server in our case, which supports up to 640 processor cores, 4TB RAM and databases up to 524PB in size. This software architecture enables the near-linear horizontal scalability exhibited by our systems. Additionally as this software architecture places no application-specific restrictions on the database's underlying capabilities, the high availability and resilience provided natively by SQL Server are supported by default.
Asynchronous processing is used extensively throughout the Broker- and Exchange-Engines to meet the required extreme levels of scalability and throughput. Business logic is judiciously split between the application and database tiers to achieve the greatest throughput and most efficient use of resources, on a case-by-case basis.
All component function is accessed through well-defined programming interfaces. In fact, a primary focus of our development process is on the definition of programming interfaces between all components and on the complete and unambiguous definition and documentation of all aspects of the behaviour that is externally observable through those interfaces.