How does FoodALot send orders reliably to Restaurants? March 12, 2019 | 2 min Read

How does FoodALot send orders reliably to Restaurants?

At FoodALot we CareALot. Every little thing matters. Once an end-user submits an online order, we make sure that the order gets dispatched promptly to the Restaurant’s tablet. Missing an order is not an option, as this will make hungry customers angry. Let me explain, how we achieved such a level of reliability and the technologies behind them.

At FoodALot we CareALot. Every little thing matters.

Back-end

Our back-end technologies are coded in java and we are grateful to the open source community. We use a lightweight, stateless, web-friendly framework called Play Framework, to host our stateless rest services.

Front-end

Our front-end is coded in Angular, Bootstrap CSS etc considering web, mobile web, native mobile and native desktop. FoodALot Mobile app is being built using Ionic framework.

Database

We use a Apache Cassandra with 3 clusters as our big-data store. All your data is redundantly stored in 3 servers hosted in three different cities. This infrastructure is so scalable, reliable and allow us to retrieve the entire menu in one call.

Submit Error Handling

Every order is crucial to both users and restaurants. Any submit errors are notified to our support team, so that we can act upon it quickly. We use twilio to send text alerts.

Messaging

User submits an order using our responsive marketplace web app. New order notification has to be sent to the Restaurant’s portal. We use Apache Kafka as our messaging engine for the inter-process communication. Kafka is our messaging backbone, it is so reliable and we never had issues with it.

Push Notification

The back-end sends push notification to our android app running in the Restaurant’s tablet. Two push notifications are sent using 2 different push notification services, for redundancy. We use CataPush and pushy.me cloud push notifications services to send push notifications.

Acknowledgement from the Tablet

Our back-end has a server process that runs every 3 minutes and monitor the orders. The process tallies the sent messages and the acknowledgements received from the tablet and reports to us if there are any discrepancies.

comments powered by Disqus