Skip to content

Component Architecture

canepat edited this page Dec 21, 2016 · 18 revisions

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.

Helios Architecture

Simplicity

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.

Flexibility

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.

Scalability

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.

Clone this wiki locally