AlgoX2 has its own native protocol with shared-memory delivery for maximum performance. It also natively speaks Kafka, NATS, MQTT, Redis, Postgres, HTTP, and WebSocket — all connecting to the same stream layer. Publish via one protocol, subscribe via another. No bridge services. No translation layers.
| Protocol | Details |
|---|---|
| X2 Native | AlgoX2’s own protocol — shared-memory delivery for EXEC workloads. Maximum performance. |
| Apache Kafka | Wire-compatible with full Kafka semantics. Producer, Consumer, Connect, Streams, Admin, Transactions — all supported. Redirect your existing clients with zero code changes. |
| NATS | Core pub/sub and JetStream: streams, durable consumers, pull and push delivery, key-value buckets and the object store. |
| MQTT | Versions 3.1.1 and 5, with persistent sessions and wildcard subscriptions. v5 user properties reach Kafka and NATS readers as headers. |
| Redis | RESP protocol — pub/sub, GET/SET/DEL. |
| Postgres | Change data capture: committed changes from a Postgres database land in a stream, in commit order. Postgres can also subscribe to a stream with a stock CREATE SUBSCRIPTION — logical replication, no connector. |
| HTTP Event Collector | Publish events with a plain HTTP POST, authenticated by a bearer token. Anything that can make a web request can write to a stream. |
| HTTP Streaming | Read a stream over a long-lived HTTP connection and receive records as they are written. No client library needed. |
| WebSocket | Transport for NATS and X2 native. Browsers and clients behind a proxy reach the same streams over one upgraded HTTP connection. |
Need a protocol we don’t list? AlgoX2 can describe any binary protocol once using a compact schema, then automatically generate fast, safe C++ code for parsing and serialization. Legacy protocols, proprietary formats, custom wire formats — we can add support quickly without hand-written adapters.
Full Kafka API
AlgoX2 supports the complete Kafka API — producers, consumers, Connect, Streams, Admin, and Transactions. Your existing clients, connectors, and tooling work without code changes. Point them at AlgoX2, evaluate side-by-side, and switch back at any time.
NATS and JetStream
Core NATS and JetStream run on the same gateway. Streams, durable and ephemeral consumers, pull and push delivery, key-value buckets, the object store and direct get all work with the stock nats CLI and nats.go. A JetStream stream is an ordinary AlgoX2 stream, so a Kafka consumer can read what a NATS client published.
Why AlgoX2 is architecturally different
Kafka bundles ingress, ordering, replication, and storage into a single broker — creating shared bottlenecks under load. AlgoX2 separates these into three independent layers: Gateways (protocol ingress/egress), Sequencers (ordering and replication), and Disk processes (commit and journals). Each scales independently.
This separation eliminates the problems that force Kafka deployments to hundreds of servers:
- Connection explosion — Kafka brokers maintain TCP connections for every producer; context switches dominate CPU at scale. AlgoX2 gateways handle connections separately from sequencing.
- File explosion — Each Kafka topic-partition-replica creates multiple log segments, driving disks toward random I/O. AlgoX2 keeps a constant file count regardless of stream count — always sequential writes.
- Redundant replication — Kafka resends the same bytes over TCP to each follower. AlgoX2 uses internal multicast — the network switch replicates in one step.
- Fan-out bottleneck — Kafka’s single partition leader serves all consumers. AlgoX2 spreads reads across all nodes — full cluster bandwidth to every consumer.