Search code examples
oracle-databasemessage-queuezeromqdistributed-system

ZeroMQ vs Oracle queuing


I'm junior backend developer and now I'm working on a project about bank, which is a distributed system. What I knew before was that there were some message library such as ZeroMQ to realize the communication between components in a distributed system. But now, in the project, they used oracle queuing.

My colleague told me that this was better because we had no risk to lose any message to send even if processes die accidently.

My questions:
Q1: If Oracle queuing is better, when should we use things like ZeroMQ?
and
Q2: What is the disadvantage of Oracle queuing, comparing with ZeroMQ?


Solution

  • Your colleague is right here, because Oracle AQ comes with persistence and zeroMQ is in-memory. You'd use zeroMQ if you need max messages per second (millions). Price isn't a thing, because Oracle doesn't charge extra for AQ, it's even free with Oracle XE.

    If your application relies on Oracle already, there are no disadvantages putting the messaging into Oracle.