/ticket-system-kata

Practicing the temporal order of a ticket system

Primary LanguageJavaMIT LicenseMIT

ticket-system-kata

Practicing the temporal order of a ticket system.

What should you expect from this kata?

The kata is meant to be done in 3 or more consecutive sessions.

  1. Session I. Domain Discovery.

Analysis phase. We will use different techniques to find the essential domain complexity and draw the different bounded contexts.

The created artifacts are used for the next sessions. They can be changed in any moment when necessary.

  1. Session II. Domain Implementation.

Start implementing the actual application behavior.

  1. Session III. Validating Architectural decisions using persistance layers. A real environment.

Verification that the constrains on a real environment are met.

Starting Technologies

Practices

  • Test-Driven Development
  • Continuous Integration
  • Outside-In or Inside-out strategies

For Domain analysis and discovery, we might practice:

Domain

We are working in a famous old museum, which attracts a lot of tourists each day. The demand is high and few space available compared.

Problem Space

The stakeholders want to create a ticket system that matches the current way the museum has to sell tickets as a value proposition, in order to attend you can only buy a ticket the same day. Instead of selling the tickets upfront, we want to sell the tickets for the same day starting at 9:00 local time online.

Since the demand is high and the space available reduced, the stakeholders asked to emulate how selling the ticket happens in the real world with the online shop, with a virtual queue which guarantees the order of arrival.

queue-diagram

High level system behavior using Domain Storytelling

storytelling

ℹ️ You can use the domain storytelling online tool with the file used to generate the diagram.

  1. See available tickets
  2. Queue number
  3. Buy ticket
  4. Ticket