Note : Hexa is in progress, it does not have stable version until now, so use it at your own risk.
go : minimum version 1.13
go get github.com/kamva/hexa
- Config: config service.
- Logger: logger service and exception tracker (using Sentry)
- Translator: translator service.
- Distributed Lock Manager: At the moment we support MongoDB as driver, but if needed we will Add Etcd and __ Redis red locks__.
- Event Server: available drivers are:
- Kafka (and kafka outbox)
- pulsar
- NATS streaming
- Hexa Arranger to manage your workflow using Temporal
- Tools and interceptors for gRPC
- Hexa Tuner boot all Hexa services without headache
- Hexa Sendo Send SMS, email and push notifications(todo) in your microservices.
- Hexa Jobs push your jobs and use queues to handle jobs.
- Hexa tools for routing and web server
example:
// Assume we want to use viper as config service.
v := viper.New()
// tune your viper.
config := hexaconfig.NewViperDriver(v)
// Use config service in app.
-
Replace http status code with gRPC status code in our errors (also maybe in replies).
-
Implement Hexa Context propagators for distributed tracing.
-
Implement a service (e.g
Health
) which should implement by all Hexa services to check health of that service [Accepted][Implemented].
- Run
go generate ./db/...
orgo generate ./...
to generate some files after your changes in the DB models. - Run
golangci-lint run ./...
to run the linter.
- Where are we checking log level on logger initialization step?
- Change all of kamva packages from uppercase to lowercase.
- Write Tests
- Add badges to readme.
- CI for tests.