- A docker-containerized microservice for https://cyber-dojo.org.
- An HTTP Ruby Sinatra service that buffers web's write events and forwards them, in order, to saver.
- Reads stay direct web->saver; only writes flow through the spooler.
- Demonstrates a Kosli instrumented GitHub CI workflow.
- The design, rationale, and staged rollout are in docs/adr-async-writes-via-spooler.md.
Status: under active development. The service is not yet deployed. The deployment terraform and the aws-beta step of the CI workflow are still to come (see ADR section 8), and the coverage gates are expected to fail until the code is fully exercised.
There are two sets of tests:
- server: these run from inside the spooler container
- client: these run from outside the spooler container, making api calls only
# Build the images
$ make {image_server|image_client}
# Run all tests
$ make {test_server|test_client}
# Run only tests whose id58 matches an identifier
$ make {test_server|test_client} tid=Cp0002
# Check test metrics
$ make {metrics_test_server|metrics_test_client}
# Check coverage metrics
$ make {metrics_coverage_server|metrics_coverage_client}- GET alive?
- GET ready?
- GET sha
Each POST is relayed to saver verbatim, including a non-2xx status (ADR B1). These are saver's per-kata event writes; reads are not routed through the spooler.
- POST kata_file_create
- POST kata_file_delete
- POST kata_file_rename
- POST kata_file_edit
- POST kata_ran_tests
- POST kata_predicted_right
- POST kata_predicted_wrong
- POST kata_reverted
- POST kata_checked_out
