I was watching this excellent presentation by Rolan Kuhn of Typesafe on Introducing Reactive Streams At first glance it appears that it has some similar goals to Chronicle, but as you dig into the details it was clear to me that there was a few key assumptions which were fundamentally different.
- low latency is your problem, not throughput. Data comes in micro-bursts which you want to handle as quickly as possible long before the next micro-burst of activity.
- you can’t pause an exchange/producer if you are busy. (or pausing the end user is not an option)
- your information is high value, recording every event with detailed timing is valuable. Recording all your events is key to understanding micro-bursts.
- You want to be able to examine any event which occurred in the past.
Low latency is essential
You can’t stop the world
You need to record every thing for replay
Replay an old event in real time.
Micro-bursts are critical to understanding your system.
Examining micro bursts
How does Chronicle improves handling of micro-bursts
Low garbage rate
Supports a write everything model.
Chronicle has minimal interaction with the Operating System.
No need to worry about running out of heap.