Strong consistency : driver and user should see same data.
Compliance : the location data should be separated with user's identification data
Availability
Scalability : User and driver and call would be getting more and more
DAU : 1M
Driver : 0.1M
request per day : 0.5M
RPS : 0.5M/(24*60*60=86400) = 6RPS
data size per request = 512B
data size per day = 250M
Register Service : register as driver or passenser
driver matching service : find available driver near customer
Notification service
Pricing service : calculate price
map matching service : matching location of driver and customer to map
payment service
route planing service
driver service : register driver and vehicle
HTTP error code will be used
[Driver] index(location, vehicle_type)
[Customer]
[Call]
[Route_Plan]
[payment]
tech choice
driver
customer
payment
call
routeplan
RDBMS vs NoSQL : strong consistency is important for this service. RDBMS would be more good for this.
DB failure : db can be break down. we can duplicate and make replication. and using circuit breaker service can be stable.