Unravelling design architecture behind Uber style apps
Applications like Uber, Ola, Grubhub and so many others where real time data is to be demanded are termed as On demand applications. On demand applications need a strong backbone. This backbone is created with the help of NoSQL database and distributed components. Architecture of the application is built on strong pillars like backend, notification, payment and apis.
There are 4 major components to the architecture of the system. The system to be built on top of cloud based scalable servers. Servers in AWS can be EC2 high or medium. The capacity of a server is decided by the number of requests it serves per milliseconds.
- Real time tracking and notification
Real time tracking is achieved with the help of Google APIs or Geo location based device. This tracking is then stored and shared to various other clients. Notifications can be handled by Sendgrid or Twilio where they have proven support of sending email/sms to
- Database support
Databases like MongoDB or Firebase possessing power of handling minimum 10,000 requests per second are used to collect the information. These databases are mostly shared with Primary and Secondary servers in Failover cluster fashion.
- Payment gateway integration to reduce accounting effort
Partners like Stripe are very useful while developing Uber style apps. Payment gateways which support direct transfer of amount to driver account from customer account are preferred. This process is tedious and needs testing of various Use Cases. Wallet payment is also suited for this kind of applications
- Strong backend APIs
Strong backend custom APIs written in Python or NodeJs are recommended for such system. APIs are written in consideration with Security, Scalability and Extensibility of the system. It is recommended that the APIs are well documented, so that it becomes easy to integrate for the developers
A choice of technology stack for on demand apps varies according to the type of application. Distributed architecture consist of decoupled system of sub components commonly known as Micro components. These micro components work cohesively to make an application similar to Uber. On demand applications make an important part of smart phone apps.
Check out our case study in on demand apps.