Let me show you today how I designed messaging abstractions in Emmett, and why I split them into Consumers and Processors. Why I added abstractions like Projector and Reactor, and the trade-offs I chose. I think this can be a good learning experience on how messaging systems are built and the reasoning behind them!
Love this!