Ringier Event BusRingier Event Bus
Overview
  • Technical Overview
  • Policies
Send events
Receive events
Monitoring
Services
  • Production
  • Staging
Overview
  • Technical Overview
  • Policies
Send events
Receive events
Monitoring
Services
  • Production
  • Staging
  • Technical Overview

Technical Overview

The Ringier Event Bus is composed of several key components:

  • 5 core services written in Go: Feeder, Emitter, Receiver, Nodes and Users.
  • a RabbitMQ server.
  • a DynamoDB AWS service.

infrastructure-overviewFigure 1: Infrastructure overview

events-flowFigure 2: Events Flow

Core services

The core services are microservices which intercommunicate actively using JSON over REST APIs. The microservices are all behind a VPC and communicate (if necessary) using JWT as an extra layer of security.

Feeder

The Feeder service is responsible of accepting events from the nodes, performing verification and validation checks, and publishing those events to the RabbitMQ server.

Emitter

The Emitter service is is responsible for routing the events to the receivers that match the routing rule. It also adds the node specific config and sets auth headers.

Receiver

The Receiver service is responsible for consuming events from the RabbitMQ server and forwarding them to the configured endpoints.

Nodes

The Nodes service allows nodes to register themselves with the Ringier Event Bus. It also allows nodes to update their configurations.

Users

The Users service allows nodes to authenticate against the Ringier Event Bus before emitting events.

RabbitMQ

The RabbitMQ is used as the primary message broker which the entire microservice architecture publish and consume from.

DynamoDB

The DynamoDB AWS service acts as long-term storage solution for the core services. Information as users and nodes configurations are stored there.

Last Updated: 5/13/26, 8:23 AM