O(1) direct memory access. Big Only limited by available disk space. Persistent Data is persisted on disk and is crash resistant. Reliable OS will be responsible for message persistence even your process crashes. Realtime Produced messages will be immediately visible to consumers Flexible Queue Semantics Consume once queue, fanout queue, can even consume by index Memory-efficient Automatic pagging & swapping algorithm, only most recently accessed data is kept in memory. Thread-safe Multiple threads can concurrently enqueue and dequeue without data corruption. Simple & Light-weight Current library jar is less than 40K.
Put all data into a source queue 1. Build a queueOfSortedQueues by dividing and 2. sorting the source queue Merge sort the queueOfSortedQueues 3. The last one left in the queueOfSortedQueues 4. is the final sorted queue