Reactive updates from back end servers


I’m tying to understand, what is currently the best way to update a user interface with data from a back end server.

Some context:
I have a microservice that uses MSSQL. We require transactions spread across several tables and don’t want to write code to manually handle failure cases in mongo, which are handled in SQL.

Currently it seems to me that the best thing to do is to gather data from my microservices and store them in an in memory database and then continue using meteor as normal. When my application server sends a request to a microservice, that service should return a structure which explains what needs to be updated in the local data store. - This would be facilitated by an external messaging system like RabbitMQ to ensure that if we scale to multiple application servers, they will all receive the update

The other option is to build each of my microservices on meteor, connect directly to the SQL database and do custom publications. This way the user facing server can use DDP to gather data from the microservices

I’ve been looking at Relay and GraphQL but it seems that this is quite right for this case. Ultimately I just want the data to display on the client device. But Relay would require me to expose the back end server and figure out how to carry my meteor authentication over to this server.