akondas / flighthub

Flight ticket booking system implemented with CQRS and ES.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

License:MIT License


Languages

Language:PHP 92.0%Language:HTML 8.0%