Process a message synchronously
Finds all matching consumers by message type and calls their handle() method. If any consumer throws, onError() is called and the error is re-thrown.
Queue name (not used for routing, consumers match by message type)
Complete message with id, timestamp, and payload
Sync Queue Provider
Processes messages immediately by finding matching consumers and calling their handle() method directly. Used for testing and development where real queue infrastructure is not available.
Behavior:
Consumer Matching:
Example: Testing with sync provider