Coral: A backend server for Real-time Apps
Let’s talk about what is a real time app means that you have ability to show information in real time to your customer as the events happening in the order parts of system.
Few example of real time apps are
Ride hailing Apps
Food Ordering Apps
Challenges in building such Apps
You have to receive a high volume of update from the Fact entities (like order, trips etc). And as you receive those updates you have to notify the Dimension Entities (Restaurant, Driver etc). The latency requirement for these systems are in the order of milli-seconds at a very high volume.
You could have updates from multiple sources like a phone app or it could be from a backend system which is performing some action and sending you status update in kafka stream or other pub-sub mechanism.
Another challenge is that not all events need to be sent to Dimension site so you need some kind of filtering logic in the backend.
Simple use-case diagram of a coral server
We started working on coral server with all the above requirements in mind.
It uses websockets to pass the messages to one or more dimension sides in real time. All you need is to use a simple okhttp listener implementation which reads the messages on the socket.
The coral server is completely open sourced and you can see the code on github: https://github.com/catchkvs/Coral
For more details visit: https://www.k8scale.io/coral-server
If you are looking for a backend server for your app. Let us know, we would be happy to help you.