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:

  1. Message Receipt: Message arrives from messaging backbone

  2. Duplicate Check: If enabled, sequence number checked against tracking window

  3. Handler Dispatch: Message routed to appropriate handler based on type

  4. Business Logic: Handler executes, updating state and sending messages

  5. Sequence Update: If duplicate detection enabled, sequence number recorded

  6. 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:

Message Processing Concepts

Developer Guidance

Configuration Reference

  • Configuration - Complete DDL reference for all message flow settings

Best Practices

  1. Enable duplicate detection for business-critical channels: Ensure exactly-once semantics for orders, trades, and other critical messages

  2. Disable for high-volume market data: When duplicate checking overhead is unacceptable and duplicates can be handled at application level

  3. Configure sequence persistence: Enable sequence number persistence for channels that need recovery after cold start

  4. Monitor sequence gaps: Use per-transaction statistics to detect and investigate sequence number gaps

  5. 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