An attempt to build an aggregate from the events in the Optimo Event store which will serve an API much like the READ (ie GET) Optimo Asset Store (eventually)
To run application:
./run-local.sh
Todo:
- Create case class for both working and published branches ☑
- Consume messages from a Kafka Topic ☑
- Add a Mongo DAO with CRUD API ☑
- Add a Mongo Docker container for testing / local dev ☑
- Integrate Docker/Mongo with startup script ☑
- Add
GET /assets/{id}endpoint - this should return the working branch ☑ - Add
GET /assets/{id}/branch/{branch}endpoint ☑ - Add mechanism to trash DB a re-consume queue from scratch
- Add index to db
db.assets.createIndex( { "assetId": 1 }, { unique: true } )- do this programmatically - Fix all the tests I broke ☑
- Stop using default port in Docker containers to avoid conflict with services running on host
- Review DAO / Service / API logic distribution / Consume pattern - this made sense for the History API but might not be appropriate for this project
- update the branch string appropriately ☑
- Make the published branch an Option ☑
- This is painfully slow - identify where bottlenecks are in event consumption
This service is allowlisted and is hosted in https://github.com/bbc/cam-whitelisting. The allowlist is disabled on int, Jenkins and locally.