SkillAgentSearch skills...

Hermod

Mythic, Mighty, Simple Message Broker written in Go.

Install / Use

/learn @Amirhosein/Hermod
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Hermod: Mythic, Mighty, Simple Message Broker

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
<p align="center"> <a href="https://skillicons.dev"> <img src="https://skillicons.dev/icons?i=go,prometheus,grafana,postgres,cassandra,redis,kubernetes,docker" /> </a> </p>

Structure

overall architecture For better understanding the core and logical concept of Hermod, i've created a simple prezi presentation. You can find it here. Make sure to check it out!

RPCs Description

  • 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);
}

Up and Running

Docker

docker-compose -f deployments/docker-compose.yml up

Kubernetes

cd hermod
helm install hermod

Related Skills

View on GitHub
GitHub Stars9
CategoryDevelopment
Updated1y ago
Forks0

Languages

Go

Security Score

55/100

Audited on Dec 16, 2024

No findings