Flight ticket booking system implemented with CQRS and ES.
Graph generated from
eventstorming.md
using webeventstorming.com
- Add new flight
- Reserve ticket
- Block seat (with Optimistic Offline Lock)
- Confirm reservation (with Pessimistic Offline Lock)
- Cancel reservation (with Implicit Lock)
- Register customer
- Add customer address
- Change customer email (with Coarse-Grained Lock)
Offline Concurrency Patterns presentation showcase
- Health check
- Show flight (by id)
- Search flight by number
- Show customer (by id)
- Search customers
- Show confirmed reservations (by flightId)
- Frameworkless domain (with EventMachine new Flavour feature)
- Custom projections
- Integration tests
docker-compose up -d
docker-compose run php php scripts/create_event_stream.php
http://localhost:8080/swagger/index.html
docker-compose run php php vendor/bin/phpunit
FlightHub is released under the MIT Licence. See the bundled LICENSE file for details.
Arkadiusz Kondas (@ArkadiuszKondas)