Skip to content

Horizon component for handling circuit breaker and republishing functionality, written in Go.

Notifications You must be signed in to change notification settings

telekom/pubsub-horizon-golaris

Repository files navigation

Golaris

Horizon component for handling circuit breaker and republishing functionality.

PrerequisitesBuilding GolarisConfigurationRunning Golaris

Overview

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.

Prerequisites

For the optimal setup, ensure you have:

  • A running instance of Kafka
  • A running hazelcast host

Building Golaris

Go build

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.

Docker build

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  . 

Configuration

Running Golaris

Locally

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

Operational Information

Documentation

Read more about the software architecture and the general process flow of Horizon Golaris in docs/architecture.md.

Contributing

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.

Code of Conduct

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.

Licensing

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/.

About

Horizon component for handling circuit breaker and republishing functionality, written in Go.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published