Demo for Broadway - EventSourcing library for PHP
Vagrant will provision the machine (using ansible).
The box is then available at
192.168.42.100, the vhost is configured with domain
If you don't have ansible installed, you will have to run
composer install yourself. And run
app/console broadway:event-store:schema:init to initialize the database.
docker-compose up -d
Docker-compose will set up the containers needed to run this demo.
docker-compose exec app /bin/bash app/console broadway:event-store:schema:init
The app will be available at http://localhost:8000 as configured in
Running the demo
This demo doesn't have a GUI, only an API with the following endpoints:
||Pickup a new basket, returns the basketId|
||Add a product to a basket (productId and productName should be given as form fields)|
||Remove a product from a basket (productId as form field)|
||Checkout a basket|
||Retrieve Other people also bought this list|
Elasticsearch web ui
You can access the elasticsearch; main index
Running the tests
By default we exclude functional tests, by providing
--exclude-group=none you can run the functional tests as well.
cd /vagrant phpunit --exclude-group=none
docker-compose run app vendor/bin/phpunit --exclude-group=none
- Domain code can be found in
- ReadModel code can be found in
- Controller / services can be found in
Note that there are two files for the services:
domain.xml contains all the domain-specific services (CommandHandler,
ReadModels, Repositories), while
services.xml contains domain-unspecific
services (controllers etc).
The domain specific tests can be found in
Note that there is a functional test (using ElasticSearch) in
For more information, read our blog post about this demo: http://labs.qandidate.com/blog/2014/12/30/a-broadway-demo-application/