Smart Buffering Explorer
Use the stage controls to compare the synthetic input, authored output, and configuration at each step.
How to use this explorer
Move between stages with the arrows or the numbered stage list. Each stage shows the input it receives on the left and the output it produces on the right, with the lines that changed marked. The configuration that makes the change sits below the comparison, and the final stage shows the complete pipeline.
The 4 stages in order
- Original InputAll messages are buffered in FIFO order. Important alerts wait behind debug logs, payment failures queue after bulk analytics. After reconnection, all backlogged messages compete equally.
- Priority ClassificationMessages are classified into three tiers: important (critical alerts, payment failures), regular (standard operations), and archive (debug logs, analytics). Each tier gets a label.
- Priority Output RoutingRoute each tier to separate outputs with different batching. Important: count=1 (immediate). Regular: count=50. Archive: count=200. New important messages ship immediately—they don't wait for queued regular batches.
- Starvation PreventionAdd an authored age-based score adjustment. Eventual delivery and starvation behavior require a real queue and worker test.
Interactive pipeline
SMART BUFFERING
Priority-aware output configuration
Stage 1 of 4
Original Input
All messages are buffered in FIFO order. Important alerts wait behind debug logs, payment failures queue after bulk analytics. After reconnection, all backlogged messages compete equally.
0HighlightsAuthored emphasis only—not a computed diff.
Copy & download
Input
{"timestamp": "2024-01-15T14:30:00Z","severity": "critical","category": "important","event_type": "payment.failed","service": "payment-service","message": "Payment processing failed","amount": 50000}Output
{"timestamp": "2024-01-15T14:30:00Z","severity": "critical","category": "important","event_type": "payment.failed","service": "payment-service","message": "Payment processing failed","amount": 50000,"buffered_at": "2024-01-15T14:30:01Z"}Partial snippet
01-original-input.yaml# No priority buffering - all messages treated equally
buffer:
memory:
limit: 50000
batch_policy:
count: 100 # FIFO ordering
period: 1s # Same delay for all
output:
http_client:
url: ${DESTINATION_URL}
verb: POST
timeout: 30s