How bloomberg/blazingmq works
BlazingMQ is a distributed message-queue framework: applications publish messages and other applications consume them asynchronously, with brokers providing durable queueing and routing. The repository includes the C++ client, broker-side protocol and storage components, and command-line utilities. The graph follows that documented product workflow and the available source paths; implementation excerpts were limited, so some subsystem connections are not shown.
Main entry points: mqbs File-backed storage · mqbblp_storagemanager.cpp Broker storage manager · bmqa_session.cpp Client session API · bmqimp_application.cpp Client internals
Components 18
C++ Client
- Client session API
src/groups/bmq/bmqa/bmqa_session.cpp - Client internals
src/groups/bmq/bmqimp/bmqimp_application.cpp - Client channels
src/groups/bmq/bmqio/bmqio_channel.cpp
Broker Runtime
- Message protocol
src/groups/bmq/bmqp/bmqp_protocol.cpp - Broker application
src/applications/bmqbrkr/bmqbrkr.m.cpp - Broker task
src/applications/bmqbrkr/m_bmqbrkr_task.cpp
Durable Storage
- Storage interface
src/groups/mqb/mqbi/mqbi_storagemanager.h - Cluster storage manager
src/groups/mqb/mqbc/mqbc_storagemanager.cpp - Broker storage manager
src/groups/mqb/mqbblp/mqbblp_storagemanager.cpp - File-backed storage
src/groups/mqb/mqbs
Command-Line Tools
- Storage inspection CLI
src/applications/bmqstoragetool/bmqstoragetool.m.cpp - Storage commands
src/applications/bmqstoragetool/m_bmqstoragetool_commandprocessor.cpp - Journal processing
src/applications/bmqstoragetool/m_bmqstoragetool_journalfileprocessor.cpp - Search results
src/applications/bmqstoragetool/m_bmqstoragetool_searchresult.cpp - Result printer
src/applications/bmqstoragetool/m_bmqstoragetool_printer.cpp - Messaging CLI
src/applications/bmqtool/bmqtool.m.cpp - Storage inspector
src/applications/bmqtool/m_bmqtool_storageinspector.cpp
Other components
- Producer / consumer apps
Connections 15
- Producer / consumer apps → Client session API: uses
- Client session API → Client internals: delegates
- Client internals → Client channels: communicates via
- Client channels → Message protocol: transfers events
- Broker application → Broker task: starts
- Message protocol → Broker task: delivers events
- Broker storage manager → Storage interface: implements
- Cluster storage manager → File-backed storage: manages persistence
- Broker storage manager → File-backed storage: uses
- Storage inspection CLI → Storage commands: dispatches commands
- Storage commands → Journal processing: processes journals
- Journal processing → Search results: feeds records
- Search results → Result printer: prints results
- Messaging CLI → Storage inspector: offers inspection
- Storage inspector → File-backed storage: reads files