I looked it up and it used to send messages between 2 systems.
But why? Why wouldn\'t you just use a Database
?
There must be some feature that ActiveM
ActiveMQ
, or in general all Message Oriented Middleware (MOM) implementations are designed for the purpose of sending messages between two applications, or two components inside one application.
Essentially, MOM and databases share a common foundation in that they provide transactional and persistent data storage to can read and write from.
The big difference is the usage pattern - where databases are very generic and optimized for complex searching over multiple tables, MOM is optimized for reading messages, one at a time, in a FIFO like fashion [Queue].
JMS
, which is an API ActiveMQ implements, is an important cornerstone in Java Enterprise applications. This makes messages share a rather common format and semantic, which makes integration between different applications easier.
Of course, there are a lot of more detailed features that are only in ActiveMQ, wire protocols like OpenWire
, STOMP
and MQTT
, JMS
, EIP
together with Apache Camel, message patterns like "request/reply" and "publish/subscribe", JMS Bridging, clustering ("network of brokers"), which allow scaling and distributions, etc.
You should read up on those topics a bit if you are interested since they are rather large.