Skip to content

Repository files navigation

Message Broker

In Bale Messenger’s golang backend trainee program, as our final project, we were tasked to implement a gRPC message broker. In this project I had hands-on experience working with:

  • Channels / Lock / Mutex
  • grpc/Protobuf
  • Postgres & SQL
  • Load testing
  • Unit testing
  • Load Testing using K6 and custom written golang client
  • Tracing using Jaeger
  • Performance scrapping using prometheus
  • Performance monitoring using custom-built Grafana dashboards
  • Global and local rate limiting using envoy
  • Containerization and container orchestration using Kubernetes
  • Performance optimization using insert batching and in-memory caching

Performance Report

We had several load testing and stress testing phases on broker's publish functionality using K6 and custom-built golang clients.

rate

publish rate

latency

latency

About

Final project in Bale Messenger's Golang backend trainee program.

Resources

Stars

11 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages