Understanding Orb DLT

Architecture

The Orb DLT stack consists of three layers namely Cassandra, Apollo and Core as shown in Fig. 1. Cassandra cluster serves as the database for the stack. Apollo, a Java app, manages database transactions on top of Cassandra. Core is a suite of golang applications which provide account and transaction functionality. It consists of Account Core and Coin Core among other apps (namely Audit Core and Query Core, which will be discussed in the future iterations of our product). Account Core provides an HTTP interface to create and manage user accounts. Coin Core provides an HTTP interface to execute coin transactions, query balances etc.

3166

Orb DLT stack

Core and Apollo are completely stateless components i.e, these components can be scaled up without any issues. Only Cassandra is stateful in the stack. However, Cassandra being a distributed database provides relatively easy ways to increase or decrease the capacity of the database if need be. The DLT stack is therefore very elastic in terms of capacity planning. Overall it consists of two types of machines. One for Cassandra cluster, another for running Apollo and Core apps.

We recommend running Cassandra at replication factor 3 because it provides a good balance between redundancy and performance. Lower RF will increase the risk of losing data and a higher RF will have a negative effect on request latency. This guide assumes that the Cassandra cluster is configured to run as a single data centre. It is recommended to host Cassandra instances in separate physical locations if possible. In case they are hosted in separate locations, be sure to assign them to separate Racks to ensure correct data distribution across Cassandra instances.

Apollo and Core can run on the same instances together as they are relatively less resource intensive. This also helps simplify the installation and configuration process. A single binary of Core can run as a Coin Core application or Account Core application depending on the arguments passed when starting. Orb Core apps communicate with Apollo using thrift protocol which in turn manages database transactions with Cassandra.