I’m planning on moving chat functionality from our core app to a microservice avoiding future oplog issues and better scaling. I have some options in mind but not sure what would be easier/safer/faster:
- Streams: It’s what RocketChat uses but doesn’t seem to fit my plan as I need storage. I want to avoid mongodb + oplog tailing + meteor issues. Also, Streams is dead so it’s a bit risky to create a fork.
- RethinkDB + Meteor: Sounds fine as I’m already using Meteor and RehinkDB support seems fine for such a simple funcionality (It will just store conversations and messages).
- RethinkDB + Phoenix: Never used Phoenix so this is really crazy but seems like a good option to get an stable solution for the future. Hard but fast.
Any “external” app either meteor or Phoenix would require a way to send that data to the main meteor app. Is there any way to feed a publication from another source?. How can I make that source reactive?
I’m now I’m asking “big” questions but just want to share some ideas and know what other options I have. I’m scared that we could hit the oplog tailing cpu issue fast due to chat functionality.