Skip to content

Message Buffering

How Buffering Works

Every message that passes through ioBufferPro is written to disk before delivery. This guarantees zero data loss even during unexpected power failures, application crashes, or system restarts.

When a message arrives from a source, it is immediately persisted to the buffer. Only after the message has been safely stored does ioBufferPro attempt delivery to the destination. This store-then-forward approach ensures that no message is ever lost in transit.

TIP

You do not need to configure or manage the buffer. ioBufferPro handles all storage operations automatically in the background.

Message States

Every message in the buffer goes through a clear lifecycle:

StateDescription
PendingThe message has been received and stored. It is waiting to be delivered to the destination.
In-FlightThe message is currently being sent to the destination. It remains in the buffer until delivery is confirmed.
DoneThe message has been successfully delivered to the destination and confirmed.

Automatic Retry

If a message delivery fails (due to a network issue, destination unavailability, or any other error), ioBufferPro automatically retries with exponential backoff. The retry interval increases with each failed attempt to avoid overwhelming the destination.

Messages remain in the buffer with a Pending state until they are successfully delivered. No manual intervention is needed — ioBufferPro handles retries entirely on its own.

INFO

Exponential backoff means the wait time between retries grows progressively (e.g., 1 second, 2 seconds, 4 seconds, 8 seconds, and so on), giving the destination time to recover.

Buffer Capacity

SettingDefaultDescription
max_storage_mb1000 MBMaximum buffer storage size, configurable in the system settings

The buffer capacity is limited only by available disk space. You can increase the max_storage_mb setting to accommodate higher message volumes or longer periods of destination unavailability.

WARNING

If the buffer reaches its configured maximum capacity, new messages may be rejected. Make sure your disk has enough free space and that the max_storage_mb value is appropriate for your workload.

Auto-Cleanup

Once a message reaches the Done state (successfully delivered), it is not removed immediately. ioBufferPro retains delivered messages for a 15-minute grace period before cleaning them up. This provides a safety window in case of any post-delivery verification needs.

Cleanup runs automatically in the background and requires no manual action.

Performance

ioBufferPro's buffering engine is designed for high throughput and low latency:

MetricValue
Throughput200+ messages/second per channel pair
Typical latencyLess than 1 ms per message

Message reception, buffering, and delivery all happen concurrently, maximizing throughput without sacrificing reliability.

Deduplication

ioBufferPro includes built-in deduplication to prevent duplicate message processing. If the same message is received more than once (due to a retry from the source or a network glitch), the duplicate is detected and processed only once.

Zero-Downtime Buffering

Buffering continues uninterrupted even during maintenance operations. You can monitor, manage, and inspect channels while messages continue to flow through the system without interruption.

ioBufferPro Documentation