SysPadExamples › Ride-hailing app

Ride-hailing app

Uber-style: API gateway, ride service, Redis geo cache, trip store, a Kinesis location stream feeding a Lambda matching engine, and Stripe payments.

A real-time stream + async matching path, with the user request ending at the queue.

DNS Route 53 API Gateway API Gateway AT LIMIT Ride Service Fargate Auth Cognito AT LIMIT Driver Geo Cache ElastiCache Trips Table DynamoDB Pricing Service Fargate AT LIMIT Payments Stripe AT LIMIT Location Stream Kinesis AT LIMIT Matching Engine Lambda Driver State DynamoDB Push Notifications SNS

How it works

Driver Geo Cache
Redis geo index of nearby drivers, read on the hot path of every ride request.
Location Stream
Location pings fire-and-forget onto the stream; matching runs async, off the rider request.

Request flows

Request a ride

  1. DNS
  2. API Gateway
  3. Ride Service
  4. Driver Geo Cache
  5. Pricing Service
  6. Trips Table

Driver location ping

  1. DNS
  2. API Gateway
  3. Ride Service
  4. Location Stream
  5. Matching Engine
  6. Driver State
  7. Push Notifications

Complete trip

  1. DNS
  2. API Gateway
  3. Ride Service
  4. Trips Table
  5. Payments

Other reference architectures

Open this architecture in SysPad · All examples