Challenge
The customer required a solution to manage:
- High-frequency data updates: The location of the driver is updated in real time.
- Instant driver matching: We use dynamic data to locate the closest driver in real time.
- Scalability: Manage location updates and thousands of ride requests.
- Analytics: Produce reports without affecting operations in real time.
Solutions:
We put in place a multi-database architecture with instant communication protocols and real-time data streaming:
- Transaction Layer (Red is/Mem SQL): Holds location information and rides that are currently active for immediate driver matching.
- Reporting Layer (Redshift/PostgreSQL): Manages analytics and completed rides without influencing real-time data.
- Persistent Layer (MongoDB/DynamoDB): Controls static data (driver information, user profiles).
- Using Kafka for Real-Time Processing: Kafka provides real-time driver location data streaming. Through in-memory transaction layer searches, the closest driver is instantaneously located.
- Instant Communication via MQTT: Enables real-time trip updates, ride statuses, and notifications between drivers, passengers, and backend systems.
- Independent Reporting System:
- Analytics include demand peaks, ride completion rates, surge pricing trends, and driver availability.
- Reporting runs independently, ensuring uninterrupted live operations.
Key AWS services used
- Kafka
- Redis
- MQTT
- PostgreSQL
- DynamoDB
- Amazon Redshift