The Messaging Gap
There is a gap in the architect’s toolset.
Everywhere I look, be it maintaining coherency in a distributed cache, to dispatching financial data across many machines, to a mesh of agents inter-communicating across processes, virtual machines, and container boundaries, to push scenarios where data and notifications are delivered just in time and as needed, to collecting trace and log data, and everything in between, there is a need for a simple, uniform, broker-less, zero-configuration, lightweight, and fast message-passing mechanism.
Some of the desirable traits of such a facility are:
- Prioritized messages with anti-starvation.
- Source and destination queuing.
- Message clubbing for fast throughput.
- Common patterns (req-rep, pub-sub, fan-out, multicast, broadcast)
- Common transports (inproc, local, TCP, UDP)
- Newer and specialized transports (PGM, QUIC, RDMA / InfiniBand / iWARP)
- Virtualized environment transports (Hyper-V sockets, VSock)
- Multithreading / highly concurrent operation, low latency, and high throughput.
- Embeddable / library form.
- Open specifications and wire format.
Enter LwMQ, a lightweight message queuing API.
At this point, this is only a bunch of ideas with a few building blocks and experiments done, a logo, a domain name with email redirect but without a landing page, and an empty GitHub repo (to host the specs, wiki, samples, doc, and track issues), but it has to start somewhere, and it just did 😊
info@lwmq.net
www.lwmq.net
https://github.com/axelriet/LwMQ.net



