Message Flow
Overview
Message flow configuration controls how messages move through your Rumi microservice, from receipt through processing to sending. Proper configuration of message flow features ensures reliable, ordered, and duplicate-free message processing.
This section covers runtime configuration options that affect message flow behavior. For conceptual information about message processing, see Message Processing.
What You Can Configure
Message flow encompasses several aspects of how messages are handled:
Duplicate Detection
Configure sequence number-based duplicate detection to ensure exactly-once processing semantics:
Enable/disable duplicate checking per channel
Configure sequence number windows
Set persistence options for sequence tracking
Handle sequence resets and rollovers
See Duplicate Detection for complete configuration reference.
Message Ordering (Future)
Configuration for message ordering guarantees:
Ordered delivery within channels
Key-based ordering
Sequence number validation
Note: Additional message flow topics will be added as the documentation expands.
Configuration Hierarchy
Message flow settings are configured in your DDL under the engine's messaging section:
How Message Flow Works
Understanding the message processing flow helps configure these features effectively:
Message Receipt: Message arrives from messaging backbone
Duplicate Check: If enabled, sequence number checked against tracking window
Handler Dispatch: Message routed to appropriate handler based on type
Business Logic: Handler executes, updating state and sending messages
Sequence Update: If duplicate detection enabled, sequence number recorded
Transaction Commit: Changes committed atomically with consensus
See Message Processing for detailed flow diagrams.
Common Configuration Patterns
Exactly-Once Processing
Enable duplicate detection for channels where exactly-once semantics are critical:
High-Throughput Channels
For channels where duplicates are acceptable or handled at application level, disable duplicate checking for maximum performance:
Related Topics
Message Processing Concepts
Message Processing - How messages flow through the engine
Transactions - Transaction boundaries and guarantees
Developer Guidance
Detecting Duplicates - Understanding duplicate detection from developer perspective
Handling Messages - Writing message handlers
Sending Messages - Sending messages with sequence numbers
Configuration Reference
Configuration - Complete DDL reference for all message flow settings
Best Practices
Enable duplicate detection for business-critical channels: Ensure exactly-once semantics for orders, trades, and other critical messages
Disable for high-volume market data: When duplicate checking overhead is unacceptable and duplicates can be handled at application level
Configure sequence persistence: Enable sequence number persistence for channels that need recovery after cold start
Monitor sequence gaps: Use per-transaction statistics to detect and investigate sequence number gaps
Test failover behavior: Verify message retransmission and duplicate filtering work correctly during failover scenarios
See Also
Transactions - Configure transaction batching and commit behavior
Threading - Configure threads that process messages
Monitoring - Monitor message processing statistics
Last updated

