Microservices pattern with meteor

in the past week i was working on new meteor project which i wanted to work with microservices pattern.
i want your opinion about my architecture flow so far, i was hoping i am not doing it over complicated therefore i need opinions!

Client - Angular Application
DDP - Meteor Application

Action Database - Meteor connected mongoDB
Gateway - This is the part of the application which could be done with meteor, but i wanted to separate the “jobs” part from meteor, meteor responsible for only 1 think - modifying the database. i dont want any external HTTP request or cronlike operations in the meteor app.
Gateway main responsibility is to move jobs to the services, ex - user press button which sends 1000 emails, the action will be saved in the DB then the gateway will pass along all the data (emails, schedule time etc…)
to the emails service, Lets say i want a loading bar for sending those emails, the email service will POST every few seconds a progress to the gateway, then the gateway will update the DB and meteor will automatically update the UI

Service1-3 - standalone services written on NodeJS with common MVC architecture, they are communicating with the gateway trough REST api both ways (POST/GET).

Its true that meteor has small part of this application but its actually alot - its changes the whole flow of thinks, in my older application there is no “Action Database” and all actions the user request is happening instantly
this way the user dont need to wait to anything and for him, staff happen instantly

2 Likes