hydra icon indicating copy to clipboard operation
hydra copied to clipboard

Streaming Plugins

Open ch1bo opened this issue 1 year ago • 2 comments

Why

SundaeLabs has submitted a Catalyst Proposal to extend the hydra-node APIs by "streaming plugins".

As also described int he proposal, there is a need for a customizable and flexible mechanism to log, analyze, and react to the event and transaction flow in a Hydra node. While the existing websocket-based API could be used for some cases, it does not fit all requirements when integrating a Hydra node into a production system.

The goal of the proposal and this matching feature is to take a first step into the direction of configurable streaming API(s) and extension points.

What

  • The hydra-node must use by default the same existing file-based, JSON encoded persistence mechanism = non-breaking change
  • Refactor the hydra-node to provide designated extension points to how events are consumed and where the same events are sourced from
  • No runtime configuration of which plugins / extensions to use
  • Selecting a different set of plugins / extensions requires recompilation of the hydra-node
  • Extension points are documented as such and tests ensure no accidental breaking changes on the interfaces

How

  • [x] Design and document the solution as an ADR, https://github.com/input-output-hk/hydra/pull/1157
  • [x] #1351
  • [ ] Write a "How to extend the hydra-node"
    • Including an example event source / sink
    • How to test and enable it (by recompiling)

ch1bo avatar Feb 26 '24 10:02 ch1bo