Skip to content

Flight ticket booking system implemented with CQRS and ES.

License

Notifications You must be signed in to change notification settings

akondas/flighthub

Repository files navigation

FlightHub

Minimum PHP Version Build Status License: MIT

Flight ticket booking system implemented with CQRS and ES.

FlightHub

Graph generated from eventstorming.md using webeventstorming.com

Features

Commands

  • 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

Queries

  • Health check
  • Show flight (by id)
  • Search flight by number
  • Show customer (by id)
  • Search customers
  • Show confirmed reservations (by flightId)

Other

  • Frameworkless domain (with EventMachine new Flavour feature)
  • Custom projections
  • Integration tests

Installation

docker-compose up -d
docker-compose run php php scripts/create_event_stream.php

Swagger UI

http://localhost:8080/swagger/index.html 

Testing

docker-compose run php php vendor/bin/phpunit

License

FlightHub is released under the MIT Licence. See the bundled LICENSE file for details.

Author

Arkadiusz Kondas (@ArkadiuszKondas)

About

Flight ticket booking system implemented with CQRS and ES.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published