Skip to content

Pathfinder CloudEvents Microservice

Receives RestApi requests from Pathfinder, converts them into RaBe CloudEvents, and stores the resulting CloudEvent in a Kafka topic.

This service aims at replacing the previous LWRP based implementation which itself was highly influenced by the original serial implementation that was carried over to the digital domain during our analog to digital migration in an effort to reduce the migrations blast radius.

Usage

The service is deployed to our container infrastructure and it provides a /webhook endpoint that receives POST requests from Pathfinder. The body of this request contains information in a query string style, specifically Pathfinder sends us a event and channel value. The event is either OnAir or OffAir and the channel indicates which audio source is currently routed to our broadcast infrastructure.

Information on available configuration options is available via the --help argument:

podman run --rm ghcr.io/radiorabe/pathfinderevents pathfinderevents --help

Release Management

The CI/CD setup uses semantic commit messages following the conventional commits standard. The workflow is based on the RaBe shared actions and uses go-semantic-commit to create new releases.

The commit message should be structured as follows:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

The commit contains the following structural elements, to communicate intent to the consumers of your library:

  1. fix: a commit of the type fix patches gets released with a PATCH version bump
  2. feat: a commit of the type feat gets released as a MINOR version bump
  3. BREAKING CHANGE: a commit that has a footer BREAKING CHANGE: gets released as a MAJOR version bump
  4. types other than fix: and feat: are allowed and don't trigger a release

If a commit does not contain a conventional commit style message you can fix it during the squash and merge operation on the PR.

Build Process

The CI/CD setup uses Docker build-push Action to publish container images. The workflow is based on the RaBe shared actions.

License

This application is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.

Copyright (c) 2023 Radio Bern RaBe