[Software Architecture Kata] Design a vending machine
Details
Join us for a hands-on architecture kata! We’ll start with a simple system design challenge. Each participant will spend 30 minutes designing a solution individually (on paper or whiteboard), then share their approach, key decisions, challenges, and lessons learned.
This is a great way to practice system design, get feedback, and learn from different perspectives in a collaborative, low-pressure environment. All experience levels welcome!
Today’s topic: Design the software for a vending machine — think product selection, payment handling, inventory management, and error recovery. Bring your creativity and architectural thinking!
What We’ll Do:
We’ll explore the problem using a variety of architecture and design diagrams, such as:
- Flow Diagram – to visualize the overall process and interactions.
- State Diagram – to model machine states and transitions.
- Class Diagram – to define key software components and relationships.
- Sequence Diagram – to show how objects interact over time.
- Deployment Diagram – to illustrate how software components map to hardware.
