On-Premises and Cloud Infrastructure with CoralSequencer

CoralSequencer supports multiple transport protocols, offering flexibility when building on-premises and cloud infrastructures. You can use UDP, multicast or unicast, TCP, or a combination of both to design your infrastructure in the way that best fits your needs, whether on-premises, in the cloud, or across both. In this article we’ll see some examples through diagrams.

On-Premises with Multicast

The primary and recommended transport for CoralSequencer, using an industry established reliable multicast UDP protocol. It is not only more efficient for distributing messages across nodes, but it also offers useful features such as multicast discovery.

OnPremMulticast

The green arrows represent multicast UDP connections, while the blue arrows represent TCP connections. The Bridge serves as a TCP entry point into the distributed system.

IMPORTANT: Later below, we’ll see how to run the entire sequencer in the cloud using only TCP, with no multicast at all.

To make this diagram smaller, let’s abbreviate some components: Replayer = R, Logger = L, Bridge = B, Archiver = A and Sequencer = SEQ.

OnPremSmall2

Extending the Distributed System to the Cloud

When multicast UDP is not available, we can use an industry established sequenced TCP protocol. Your choice for the CoralSequencer transport protocol does not affect your application code and logic in any way.

ExtensionToCloud

Note that we are extending our distributed system to the cloud through a single bridge-to-bridge TCP connection. The bridge on the cloud side provides connectivity to all cloud instances. It can have a backup bridge ready to take over in case it fails, so it does not become a single point of failure. You can also deploy more than one bridge on the cloud side to better distribute the load. It is important to understand that bridges can be chained together to build any network graph, but simplicity is often the best approach.

Also note that there is no multicast UDP connectivity in the cloud, only TCP and shared memory. The Dispatcher provides shared memory connectivity to nodes on the same machine, in this case within the same cloud instance. It connects to the bridge over TCP and distributes all messages to all nodes through shared memory, using a single memory mapped file. As a result, instead of maintaining a TCP socket per node, only a single TCP connection is required for the dispatcher.

IMPORTANT: Both the bridge and the dispatcher operate in full-duplex, handling both downstream messages and upstream commands.

Extending to Data Centers and External Clients

SmallDataCenter

Pure TCP Sequencer Infrastructure

PureTcpSeq

Note that there are no multicast UDP connections anywhere, only TCP connections.

Sequencer Deployed on the Cloud

AllCloud

There are no multicast UDP connections anywhere, only TCP. Different cloud regions are connected through bridge-to-bridge connections. Dispatchers reduce the number of TCP connections by using shared memory when running on the same cloud instance.

CoralSequencer Transport Protocols

CoralSequencer offers a variety of transport protocols that can be used without requiring any code changes. Simply change a config from UDP to TCP and your application is ready to be deployed with a totally different transport protocol. Below we list the available CoralSequencer transport protocols:

  • Multicast UDP: The primary and recommended transport for CoralSequencer, using an industry established reliable multicast UDP protocol.
  • TCP: The transport used by CoralSequencer when multicast UDP is not available, such as in the cloud, or not desirable, such as for external clients, using an industry established sequenced TCP protocol.
  • Shared Memory: The transport used within the same machine or cloud instance to minimize the number of network connections. The Dispatcher is the component that provides connectivity through shared memory to nodes on the same machine or cloud instance.
  • Dual (UDP + TCP): Two redundant connections, one TCP and one unicast UDP, streaming identical messages. The receiving side processes whichever arrives first and discards the duplicate.
  • Fuse (reliable UDP): One unicast UDP connection streaming messages, along with an idle TCP connection used for retransmission of lost messages. The receiving side requests retransmission of any gaps through the TCP connection.

Conclusion

CoralSequencer is designed to adapt to the infrastructure you have, rather than forcing you into a single network model. Whether your deployment is fully on premises, fully in the cloud, or split across both, you can combine multicast and unicast UDP, TCP, shared memory, bridges, and dispatchers to build a topology that matches your performance, reliability, high availability, and operational requirements. Most importantly, these transport choices do not require application code changes, enabling incremental evolution of your infrastructure while preserving deterministic behavior and message ordering across the system.