Scoping
- Define functional and non-functional requirements. “User should be able to…” vs. “system should be able to …“. Prioritize the top 3 functional requirements:
-
Users view events
-
Users search for events
-
Users book tickets for events
-
Prioritize availability for search/viewing, and consistency for booking
-
be scalable and handle popular events (10 million users for 1 event)
-
low latency search
-
read heavy - support high read throughput
-
API design
- Define core entities and fields (users, events, performers, venues, tickets, bookings)
- Define endpoints - GET events by ID, GET events by search via parms, POST for creating a booking with tickets/user/payment info
- Specify how the API is used to fulfill the functional requirements by defining flow, services, backend