@startuml
left to right direction
rectangle "Web app" as web
package "Backend" {
  rectangle "API gateway" as gw
  rectangle "Auth service" as auth
  rectangle "Orders service" as orders
}
package "Data" {
  database "Orders DB" as db
  database "Redis cache" as cache
  queue "Order events" as queue
}
rectangle "Email worker" as worker

web --> gw : HTTPS
gw --> auth : verify token
gw --> orders : REST
orders --> db : SQL
orders --> cache : read-through
orders --> queue : OrderPlaced
queue --> worker : consume
@enduml
