In 2015, in one project one "clever" co-worker decided to use "zeromq" in project where is the guarantee of delivery was must. I think that because he wanted to attach this technology as fancy stuff in his cv. Later he left and we had to rewrite message sending and converted to basic http.
- I wanted easy message framing - I didn't know much about networks - HTTP servers that can be embedded in C++ aren't great, and I didn't know anything about HTTP - It is nice that you can ignore application startup order if you don't care much about reliability, which I didn't
If I knew then what I know now, I would probably have picked something else. For one, I couldn't make it integrate with my main event loop, so I had it block in another thread, and that caused a problem of inter-thread communication that was nearly as bad as the original problem, for me as an inexperienced noobie.