Food delivery, like iFood or DoorDash

hunchboard

Three sides at once: customer, restaurant and courier, with one order moving through a state machine.

Comments

    What is on this board

    Parts

    • Customer Mobile app
    • Restaurant panel Web app
    • Courier Mobile app
    • Orders Monolith · Rails
    • Orders and menus Relational DB · PostgreSQL
    • Restaurants nearby Search index · Elasticsearch
    • Couriers Geospatial index · Redis GEO
    • Payment Payment provider · Mercado Pago
    • Pix Banking / open finance · Pix
    • Live order status Realtime channel
    • Status Email / SMS / push
    • Start Initial state
    • Placed State
    • Accepted State
    • Ready State
    • With the courier State
    • Delivered State
    • End Final state

    How they connect

    • Customer → Restaurants nearby: what's near me?
    • Customer → Orders: places order
    • Orders → Payment: charge
    • Orders → Pix: or Pix
    • Orders → Orders and menus: SQL
    • Orders → Live order status: status
    • Live order status → Customer: live status
    • Live order status → Restaurant panel: new order
    • Restaurant panel → Orders: accepted, ready
    • Orders → Couriers: closest courier
    • Courier → Orders: picked up, delivered
    • Orders → Status: on its way

    Notes and decisions

    • Orders: One deploy until a part needs its own scale

    More like this