Disruptor is typically used for processing with low latency and high throughput. For example. millions of messages with a typical delay of hundreds of microseconds. Since very few databases can handle this update rate with fairly limited delays, logging is often done for a raw file with replication to the second (or third) system.
For reporting purposes, the system reads this file or listens to messages and updates the database as quickly as it can, but this is taken out of the critical path.
Write dead in the ring buffer when the handler of each event processed it.
The slot that uses the message is unavailable until each event handler processes it and the entire message in front of it. Removing a message would be too expensive, both in terms of performance and design impact.
Each event processor sees each message. Since this happens at the same time, there is little cost involved, but it is normal for event processors to ignore messages. (perhaps most posts)
Peter Lawrey
source share