Deprecated: (!First Steps) with Oracle Cloud’s Pub/Sub Service: Oracle Messaging Cloud Service


Fire and forget messaging is a powerful concept. Asynchronous, decoupled communication is key to scalability and independence of services. Oracle Cloud provides a pub/sub solution called Oracle Messaging Cloud Service. This is an HTTP based publish and subscribe mechanism for asynchronous communication – based on persistent messages and durable subscriptions. It is modelled after the Java Messaging Service. It allows for publishing messages from anywhere – inside OCI but also from other clouds and from any on premises system-  and for consuming these messages anywhere – again inside Oracle Cloud Infrastructure or anywhere else. Oracle Messaging Cloud Service has a low threshold – with a price set per 1M API Calls per month at $0.38 (pay as you go) or $0.25 (monthly flex).

You may wonder: why the strike out? Is that information incorrect? Well, not necessarily – it is all based on actual information from the Oracle Cloud’s website and documentation.


However, as I tried to get started with OMCS, it turned out to be not as simple as I thought. In fact, it seemed impossible.

I have gone through this with a friendly chat agent from Oracle:


And though he did not help me at all, he seemed nice.

I then decided to check service availability – in Data Regions ( – and that seems to clarify things: OMCS is about to be killed off. This useful cloud service is only available in a very select few regions, and not the up and coming ones:


In EMEA only Amsterdam Classic (thoroughly legacy) offers Messaging Cloud.

Long story short: I need to come up with a different solution. I guess in the Oracle cloud portfolio that means OCI Streaming – based on Kafka. The one thing I will not get from OCI Streaming (or so at least is my current understanding) is the Message Push Listener – invocation of an HTTP endpoint whenever a message is published. That is a real shame, because that is a feature I could really use in my function – invokes – function – in a decoupled architecture.


In this article I will describe how to get going with OMCS – creating a Destination, a (durable) Subscriber and a Publisher. In follow up articles I will show the Push Listener in conjunction with API Gateway and Oracle Functions. I believe the OMCS, API Gateway and Serverless Functions make for a terrific cloud native threesome, allowing functions to asynchronously call each other as well as other publishers to trigger function execution in a truly asynchronous manner. It is my expectation that for high volume and low latency use cases OMCS may not be the perfect solution, but where latency is not crucial and a little overhead in communication is acceptable, this may be a very nice, scalable and cheap solution for many challenges.

The messaging solution on OCI that I am now relying upon is OCI Streaming. Streaming provides a pull/buffer-based communication model with sufficient capacity to flatten load spikes and the ability to feed multiple consumers with the same data independently. More on Streaming in a future article:



Product page on OMCS:

Documentation for Oracle Messaging Cloud Service:

Tutorial: Oracle Messaging Cloud Service: Handling Messaging Transactions with HTTP  –

Documentation on OCI Streaming –

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director and Oracle Developer Champion. Solution architect and developer on diverse areas including SQL, JavaScript, Kubernetes & Docker, Machine Learning, Java, SOA and microservices, events in various shapes and forms and many other things. Author of the Oracle Press book Oracle SOA Suite 12c Handbook. Frequent presenter on user groups and community events and conferences such as JavaOne, Oracle Code, CodeOne, NLJUG JFall and Oracle OpenWorld.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.