Horizon component for handling circuit breaker and republishing functionality.
Prerequisites • Building Golaris • Configuration • Running Golaris
Horizon Golaris serves as the circuit breaker within the Horizon ecosystem. It ensures the redelivery of failed events by periodically checking the availability of a customer's endpoint using HEAD or GET requests. When the endpoint becomes available again, all events for that customer and endpoint with the status WAITING
are getting republished and can be picked up by Comet or Pulsar redelivery.
Note: Golaris is an essential part of the Horizon ecosystem. Please refer to documentation of the entire system to get the full picture.
For the optimal setup, ensure you have:
- A running instance of Kafka
- A running hazelcast host
Assuming you have already installed Go, simply run the following to build the executable:
go build
Alternatively, you can also follow the Docker build in the following section if you want to build a Docker image without the need to have Golang installed locally.
This repository provides a multi-stage Dockerfile that will also take care of compiling the software, as well as dockerizing Quasar. Simply run:
docker build -t horizon-golaris:latest .
Before you can run Golaris locally you must have a running instance of Kafka and MongoDB locally or forwarded from a remote cluster.
After that you can run Golaris in a dev mode using this command:
go run . serve
Read more about the software architecture and the general process flow of Horizon Golaris in docs/architecture.md.
We're committed to open source, so we welcome and encourage everyone to join its developer community and contribute, whether it's through code or feedback.
By participating in this project, you agree to abide by its Code of Conduct at all times.
This project has adopted the Contributor Covenant in version 2.1 as our code of conduct. Please see the details in our CODE_OF_CONDUCT.md. All contributors must abide by the code of conduct.
By participating in this project, you agree to abide by its Code of Conduct at all times.
This project follows the REUSE standard for software licensing. You can find a guide for developers at https://telekom.github.io/reuse-template/.
Each file contains copyright and license information, and license texts can be found in the ./LICENSES folder. For more information visit https://reuse.software/.