A full-fledged, total-ordered messaging middleware for distributed systems using reliable UDP multicast, TCP, and shared memory with single-digit microsecond latency.
CoralSequencer is a full-fledged messaging middleware that implements the atomic broadcast sequencer architecture. All nodes in the distributed system read all messages in the exact same order. Always!
Messages are persisted so late-joining nodes can rewind and catch up, building the exact same state as other nodes. Broadcasting is done through a reliable multicast UDP protocol — no message is ever lost. There is no single point of failure, from software down to hardware infrastructure.
Each session is automatically archived with all its messages for replay, testing, simulation, analysis and auditing. The high-level API makes it straightforward to write nodes that publish and consume messages.
From electronic exchanges to high-frequency trading firms, CoralSequencer powers infrastructures that can't waste microseconds or afford to fail. Evolve your distributed system naturally by just adding more nodes.
3.3 microseconds average round-trip latency via UDP multicast. 2 million messages per second throughput. Kernel bypass support.
Every node reads every message in the exact same deterministic order. The atomic broadcast protocol guarantees consistency across your entire distributed system, making it natural to set up HA clusters.
Switch between UDP multicast (on-prem), TCP (cloud), shared memory (same machine), and heap memory (automated tests) via configuration without any code changes.
Centralized sequencer timestamps providing a fully deterministic clock to the entire distributed system. Replay any session archive for testing, simulation, auditing, compliance, debugging and validation.
Zero garbage created per message. No GC overhead, no latency spikes. Binary, ultra-fast, no-xml, garbage-free serialization protocol included.
No single point of failure. Sequencer failover. Multicast discovery. Hot-Hot nodes in perfect clusters. Tiered replayer architecture. Full-duplex TCP/UDP bridges with redundancy.
Run our benchmark tests on your environment to measure latency and throughput numbers on your own network infrastructure. Below are some typical results over loopback.
Write nodes that publish and consume messages with a straightforward Java API. No boilerplate, no complexity.
public class SampleNode extends Node { public SampleNode(NioReactor nio, String name, Configuration config) { super(nio, name, config); addAdminCommand(new AdminCommand("sendTime") { @Override public boolean execute(CharSequence args, StringBuilder results) { sendTime(); results.append("Time successfully sent!"); return true; } }); } private void sendTime() { sendCommand("TIME-" + System.currentTimeMillis()); } @Override protected void handleMessage(boolean isMine, Message msg) { if (!isMine) return; // not interested, quickly drop it... ByteBuffer data = msg.getData(); // the raw bytes of the message... long epochInNanos = eventStreamEpoch(); // deterministic clock... CharSequence now = DateTimeUtils.formatDateTimeInNanos(epochInNanos); System.out.println("Saw my message at " + now + ": " + ByteBufferUtils.parseString(data)); } }
A comprehensive feature set for building production-grade distributed systems.
We have been working with CoralBlocks for a while now, and two aspects stand out: the product's top performance and clean architecture, and the level of engagement with our team. They embrace clients' challenges and ideas and add to their roadmap with a very fast turnaround.
CoralBlocks is an extension of our firm, when it comes to their team and middleware product (CoralSequencer). We can jump on a call at any moment to get their support. It's the most robust third-party software we've ever used.
The CoralBlocks libraries are a pleasure to use. We've traditionally been very wary of using external libraries in the critical path, choosing instead to write everything ourselves. A corner-case bug or unexpected performance blip would just be too costly to our business. But the extremely fast, garbage-free performance of CoralReactor and the other Coral libraries has made their use indispensable. Plus, the clean architecture of their APIs has guided our overall application design to be simpler and more performant. Most importantly, the Coral guys are incredibly responsive to even the most convoluted technical questions and feature requests.
Request a full version trial and start building mission-critical deterministic distributed systems with ultra-low-latency messaging.