Serverlesspresso
Handles 1,000+ concurrent orders with real-time WebSocket updates via AWS AppSync
1,000+ concurrent orders
Real-time WebSockets
Multi-role system
Overview
Real-time coffee ordering system serving multiple user roles. Orchestrated complex workflows with Step Functions, WebSocket connections via AppSync, and secured authentication with Cognito.
Architecture Diagram
Architecture diagram coming soon.
See the GitHub repository for architecture documentation.
Design Decisions
- →Step Functions chosen for order workflow orchestration visual state machine makes complex flows auditable.
- →AppSync WebSockets over polling real-time updates without client-side timers or connection management.
- →Cognito for auth to avoid building and maintaining a custom auth system in a serverless context.
- →EventBridge for decoupling services each service publishes events without knowing who consumes them.
Deployment
All services deployed via AWS SAM template. Step Functions state machine defined as code. AppSync schema and resolvers version-controlled. Cognito user pool configured with MFA support.
Lessons Learned
Step Functions are excellent for complex workflows but the state machine definition can become verbose. Using the SDK integration pattern instead of Lambda for simple AWS API calls reduced cold starts and simplified the architecture significantly.