Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2. Use ESS-like architecture for streaming components

Date: 2024-06-17

Status

Accepted

(note that this ADR was written retrospectively)

Context

The desire is to adopt a streaming based architecture for SuperMuSR.

This has the following benefits:

  • allows flexible/modular manipulation of data "in flight" (i.e. before a file is written to the archive)
  • provides a means of rapid iteration on signal processing
  • increases recoverability in the event of a single component failure

Decision

Adopt an ESS like architecture, along with appropriate technology decisions.

Specifically:

  • Data will be exchanged via Apache Kafka with a broker
  • The format of the exchanged data will be defined and encoded using Google Flatbuffers

SuperMuSR specific items/differences:

  • The broker will be Redpanda
  • Some additional schemas will be required
  • More in flight processing will be needed, this will act as a consumer and producer, publishing the transformed data back to the broker on an appropriate topic

Consequences

  • Redpanda broker now part of physical/infrastructure architecture
  • Interface between digitisers and software components is further defined