The LMAX Disruptor is a system based on a [[Ring Buffer]] that allows for extremely low-latency message passing. It's intension is to reduce [[Cache Line]] contention and eliminate reliance on OS-based thread synchronization primitives such as [[Mutex]]es or semaphores.
The implementation linked below is in [[Java]], but [similar projects exist in C](https://github.com/samsquire/assembly) and likely other languages.
The paper going into detail on the Disruptor can be found [here](https://lmax-exchange.github.io/disruptor/disruptor.html).
[Project Home Page](https://lmax-exchange.github.io/disruptor/)
[Source Code](https://github.com/LMAX-Exchange/disruptor)
# Motivation
In systems that require high throughput and low latency, queues are not sufficient and introduce latency jitter into a system. Further, typical queue implementations conflate consumption, production, and storage concerns into the data structure. The Disruptor aims to cleanly separate these concerns while reducing latency to that of the hardware.