-
Notifications
You must be signed in to change notification settings - Fork 1
Component Architecture
Helios is a Java library providing flexible and lightweight abstract data types for domain-specific scalable applications composed by protocol-layer Gateways (GW) and business-layer Services (SVC), exploiting some state-of-the-art techniques for journalling, replicating and archiving protocol messages.
Helios is tailored for application architectures which can be naturally decomposed into one or more SVCs handling business logic as fast as possible and one or more (possibly many) GWs performing protocol adaptation towards external interfaces.
The communication among SVCs and GWs is guaranteed by the Multiple Message Bus (MMB) protocol transported over point-to-point and point-to-multipoint channels based on Aeron.
In each architectural choice Helios philosophy is "keep-it-simple", at least as simple as possible, because simple and elegant solutions are the best also for performance. Key design principles applied to Aeron are also present in Helios to try and maintain all their benefits; Helios data types are carefully crafted to be the minimal and lightweight abstractions for the job.
Thanks to the Aeron library features, it is possible in Helios to support both single-box deployments, where GWs are running colocated with SVCs using shared memory communication and multi-box deployments, where GWs run separated from SVCs using UDP-based communication: switching from one to the other just requires some configuration parameter changes.
As far as the number of external users is concerned, scalability in Helios architecture can be obtained by executing GWs and SVCs in dedicated machines and/or increasing the number of same GW instances running in different machines.