Pilot: Café Sukoon
Running the café
The café is open. Running it well means watching its health, controlling costs, hardening security and knowing how to grow — or close up cleanly.
The café dashboard
Build one CloudWatch dashboard (in CDK, with cloudwatch.Dashboard) showing the customer journey:
| Widget | Source |
|---|---|
| Orders placed / minute | Waiter's business metric |
| Orders ready / minute | Chef's business metric |
| Payments completed vs failed | Cashier's metrics |
| API errors and p99 latency | API Gateway metrics |
| Inbox depth per human | SQS ApproximateNumberOfMessagesVisible |
| Problem letters per human | DLQ depth |
| Lambda errors and throttles | Lambda metrics per function |
Costs
- Tag every resource by service: in CDK,
Tags.of(waiter).add("service", "waiter")— then view costs per human in Cost Explorer (after activating the tag). - Set an AWS Budget with an email alert.
- Biggest risks for a small serverless café: forgotten provisioned concurrency, verbose logs kept forever, and runaway loops (a function triggering itself).
Hardening before real customers
- Restrict CORS to the UI's domain
- Add Cognito sign-in for staff routes (
/kitchen/...,/payments) with a JWT authorizer - Throttling on the API stage; WAF in front if public
- Payment provider secrets in Secrets Manager; idempotency keys on charges
- Deletion protection on production tables; backups via AWS Backup
- Separate production account; deploys only through the pipeline
Closing up (cleanup)
cdk destroy
Tables set to RETAIN stay behind to protect data — delete them manually if this was only an experiment, and empty and delete any S3 buckets you created.
Ideas to grow the café
| Idea | What you'll practise |
|---|---|
A Loyalty human that awards points on PaymentCompleted |
Adding a human with zero changes elsewhere |
| A Step Functions order manager with refunds | Orchestration and sagas |
| A live order-status screen | WebSockets or AppSync subscriptions |
| An Analyst: all events → Firehose → S3 → Athena → QuickSight | Event archive and analytics |
| An AI sommelier suggesting dishes with an LLM | Hands calling an AI API, safely |
| A second café in another Region | The nomad lifestyle |
Key idea
A pilot isn't finished when it works — it's finished when you can watch it, afford it, secure it, and explain every human in one sentence.