2 stable releases
2.0.1 | Dec 17, 2021 |
---|---|
0.1.0 |
|
#58 in #golang
9KB
163 lines
Karmen
Centralized Pub/Sub for microservices
2.0 release
- I rewrote Karmen from the ground up in July 2021. It is incompatible with version 1.0.
Enhancements
- Karmen now runs off of gRPC, which cuts down lots of nasty bugs
if:
as a key under an action is now a reserved word for conditional expressionsparallel
andserial
blocks should perform how you expect...each block is done serially- Context variables - actions can return parameters that are injected into a block-level state. These can be referenced in conditionals with
{hostname-action-variablename}
- I'll be converting the dashes to dots once I add that feature to the condition parser I used
- For each action, the
{hostname-action-pass}
boolean is set automatically so you can conditionally run actions based on the result of previous actions without managing a parameter. Code 200 is defined as apass
- Action error handling is improved, currently returning HTTP-like codes. I may downgrade this to a boolean
Get Started
Using Karmen (Server):
- See Docker Hub for releases
- See an example config to start declaring your workflow
- Run Karmen as part of your docker-compose.yml. see my example docker-compose.yml
Clients with examples:
- Python - example in
karmen.py
when executed as script - Golang - example in
main.go
- Or write your own! Karmen runs on gRPC. See existing implementations for reference
Powered by
Projects using Karmen
Similar projects
More docs to come!
Dependencies
~5.5–7.5MB
~129K SLoC