Hermod is a fast and simple gRPC based broker. It's a mini practical project to sail through the Golang and most common used tools and frameworks including:
- gRPC/Protobuf
- Concurrent programming
- Storing data using Cassandra/Postrgres/Redis
- Load Testing using K6 and simple golang client
- Unit Testing
- Monitoring using Prometheus and Grafana
- Tracing using Jaeger
- Rate Limiting using envoy
- Caching and batching for highly better performance
- Deploying using docker and kubernetes
- Creating helm chart for easy deployment

- Publish Requst
message PublishRequest {
string subject = 1;
bytes body = 2;
int32 expirationSeconds = 3;
}- Fetch Request
message FetchRequest {
string subject = 1;
int32 id = 2;
}- Subscribe Request
message SubscribeRequest {
string subject = 1;
}- RPC Service
service Broker {
rpc Publish (PublishRequest) returns (PublishResponse);
rpc Subscribe(SubscribeRequest) returns (stream MessageResponse);
rpc Fetch(FetchRequest) returns (MessageResponse);
}docker-compose -f deployments/docker-compose.yml upcd hermod
helm install hermod