In this project you have to implement a message broker, based on broker.Broker
interface. There are unit tests to specify requirements and also validate your implementation.
- Implement
broker.Broker
interface and pass all tests - Add basic logs and prometheus metrics
- Metrics for each RPCs:
method_count
to show count of failed/successful RPC callsmethod_duration
for latency of each call, in 99, 95, 50 quantilesactive_subscribers
to display total active subscriptions
- Env metrics:
- Metrics for your application memory, cpu load, cpu utilization, GCs
- Metrics for each RPCs:
- Implement gRPC API for the broker and main functionalities
- Create dockerfile and docker-compose files for your deployment
- Deploy your app with the previous
docker-compose
on a remote machine - Deploy your app on K8
We run our gRPC client that implemented the broker.proto
against your deployed broker application.
As it should function properly ( like the unit tests ), we expect the provided metrics to display a good observation, and if anything unexpected happened, you could diagnose your app, using the logs and other tools.