InfiniStream is derived NATS/JetStream® server but it's not a server. Instead, we run a stateless Agent that has no local disks, and writes directly to object storage, which avoids 100% of cross-AZ replication charges. These stateless Agents are also much easier to operate than NATS/JetStream servers, so you can drastically reduce the amount of time that you spend managing your streaming infrastructure by switching to InfiniStream.
InfiniStream effectively uses object storage as both the storage layer and the network layer, which avoids much of the cost associated with running NATS in cloud environments. By writing directly to object storage, InfiniStream avoids replicating data between NATS server nodes. Instead, data is durably persisted to object storage before InfiniStream provides an acknowledgement to the producer. Once data is written to object storage, replication is handled by the object store. If you use Amazon S3 as the object store, for example, this means that the data that you write to InfiniStream has an eleven nines (99.999999999%) durability guarantee. And because your data is not replicated between Agents before reaching object storage, you don't pay anything extra for this durability.
InfiniStream agents have no concept of leader so one can write to any agent and read from any agent. If both read and write happen at the same agent there's no cross AZ traffic either.
Finally, because the compute layer is stateless, you can autoscale the Agents, which means you don't need to overprovision compute for your cluster to be able to handle peak load. This stateless model also enables InfiniStream to run on smaller instance types with lower memory requirements for lower-throughput workloads. For example, whereas NATS/JetStream is recommended to run on at least d2.xlarge or r4.xlarge EC2 instances in AWS, InfiniStream can use much smaller instances in less expensive instance families, and smaller instance sizes as well.