RocketMQ's traditional storage engine relies on a Write-Ahead-Log (WAL) implementation called CommitLog, which uses an Append-Only file system approach (similar to Redis AOF). Data is written sequentially (FIFO), and the system supports both synchronous writing (high reliability) and asynchronous writing (buffered for performance, but risk of data loss).
Message queues are managed via offsets using batch sequential commits. Metadata (Topics, subscriptions, consumption offsets, and CheckPoints) is also stored on the file system. In high-load scenarios with thousands of Topics, this architecture can lead to performance degradation and OS file descriptor (FD) limits due to the massive number of files being written simultaneously.