After some reading and research about SOA, I’m going to be writing a set of Microservices to process orders and monitor stock levels as part of processing orders from online retailers. Some whom have there own API or have integrations with our Third-party Order Management system.
This came up which, for the most part answers my question about Microservices Architecture…
Separation of concerns in Microservice Architecture.
More specifically… I’m using MuleSoft Community Edition as an ESB. Should I have Nanoservices (Cloud Functions with NodeJS/Express) to communicate (GET/PUT/POST) between the ESB (MuleSoft Community Ed.) and the Microservice (Cloud Run with Python – due to skill sets in the team).
-
The NanoService takes the new order and passes it to a Datastore.
-
The Microservice picks up the order from the Firestore, then carries out the processing the updates the data store.
-
Another NanoService forwards and Event to the ESB for further processing.
-
Saves the latest transaction to a collection (Firestore).
NOTE: should I have a separate Firestore per Microservice/NanoService or can these be collections in the same Firestore database.
Go easy :). I’ve had a 10 year career-break and keen to hit the ground running and last time I wrote SOA was about 15 years ago.