Appearance
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:
| State | Description |
|---|---|
| Pending | The message has been received and stored. It is waiting to be delivered to the destination. |
| In-Flight | The message is currently being sent to the destination. It remains in the buffer until delivery is confirmed. |
| Done | The 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
| Setting | Default | Description |
|---|---|---|
max_storage_mb | 1000 MB | Maximum 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:
| Metric | Value |
|---|---|
| Throughput | 200+ messages/second per channel pair |
| Typical latency | Less 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.