carpark
An HTTP API for paying for parking.
An experiment into event sourcing backed by a Postgres database. Events are stored in serialised protobuf and state is held in memory.
Also includes examples of logging, metrics and "black-box" service level specifications.
Setup
This application is written in Go and tested with Ruby and RSpec. The tests run against docker containers.
Run this command to install all required Ruby gems and go tools.
$ bundle install && rake install
Available Rake tasks:
rake install # Go get required tools
rake clean # Remove any temporary products
rake codegen # Generate protobuf and stringer go code
rake unittest # Run Golang unit tests
rake build # Build a local docker image
rake rubycodegen # Generate protobuf ruby code
rake spec # Run RSpec code examples