ProjectsKick AvenueLive
Kick Avenue

Kick Avenue

A marketplace is really several products sharing a checkout: browsing, carting, membership, paying, and the back office watching all of it. The backend is split along those lines as Go services behind a gateway, with queues for the work that should not block a request and dashboards for the parts that must never quietly degrade.

What it does

  • Service-per-domain backend: catalog, cart, member, transaction, payment and console, behind one gateway.
  • Asynchronous work — notifications, settlement follow-ups, background processing — handed to a message queue instead of the request path.
  • Push notifications to buyers through Firebase, so order updates reach the phone.
  • Metrics, logs and alerting on every service, so a degraded checkout is noticed before customers report it.
  • Containerised services on AWS, deployed and scaled per service.

How it fits together

  1. Step 1BrowseCatalog service serves listings
  2. Step 2CartItems held per member
  3. Step 3CheckoutTransaction service takes over
  4. Step 4PaymentSettled, then the order is confirmed
  5. Step 5NotifyQueue fans out updates to the buyer

Diagrams

How the product behaves, and how the pieces behind it talk to each other.

Business flow
Business flow diagram for Kick Avenue
System flow
System flow diagram for Kick Avenue

Stack

Services
GolangMicroservicesREST APIAPI gateway
Messaging
Message queueEvent-driven
Platform
AWSDocker
Client services
Firebase (push notifications)
Observability
DatadogGrafana

Worth noting

  • The gateway is the only public surface; services talk to it, not to the internet.
  • Splitting by domain keeps the blast radius small — payments failing should not take the catalog down.
  • Anything a buyer does not have to wait for goes on the queue, so checkout stays short.
Generating0%