Architecture
Overview
The KeySquare platform is a low-latency high-performance messaging bus.
This diagram shows a simplified view of the main components that form the platform:
Sequencer Architecture
The message bus uses a Sequencer Architecture. Every published message is assigned a unique sequence number and timestamp before being added to a single ordered stream. This guarantees that all subscribers observe messages in the same order and can process events consistently.
Most message buses only guarantee message ordering per publisher. While messages from a single publisher are delivered in order, messages published concurrently by multiple publishers can be interleaved differently for different subscribers. As a result, two subscribers may observe the same set of messages in different orders and reach different state outcomes. A Sequencer Architecture eliminates this ambiguity by establishing a single global order for all messages, ensuring deterministic behaviour across all subscribers.
Components
| Component | Description |
|---|---|
| Sequencer | Applies a sequence number and timestamp to all data published. |
| Relays | Provide applications with connectivity to live sequenced data as well as the last value that was previously published for a given topic. |
| Monitor | Collects telemetry from the platform for use in monitoring dashboards. |
| Key Access | Application and User permissions. Platform access control and resiliency services. |
| Workspace | User Interface that allows bespoke views of data. |
| Proxy | Provides TCP based connectivity to the platform for applications that are unable to use IPC / UDP. |