Development#
Contributing to ESSlivedata#
Welcome to the developer side of ESSlivedata!
Contributions are always welcome. This includes reporting bugs or other issues, submitting pull requests, requesting new features, etc.
If you need help with using ESSlivedata or contributing to it, have a look at the GitHub discussions and start a new Q&A discussion if you can’t find what you are looking for.
For bug reports and other problems, please open an issue in GitHub.
You are welcome to submit pull requests at any time. But to avoid having to make large modifications during review or even have your PR rejected, please first open an issue first to discuss your idea!
Check out the subsections of the Developer documentation for details on how ESSlivedata is developed.
Code of conduct#
This project is a community effort, and everyone is welcome to contribute. Everyone within the community is expected to abide by our code of conduct.
Table of contents#
- Getting started
- Coding conventions
- Dependency management
- Backend Service Architecture
- Message Flow and Transformation
- Livedata Dashboard Architecture
- Orchestrator Flow: Plot Creation Lifecycle
- Rate-Aware Message Batcher
- Per-instrument stream registry
- Stream Keying
- Architecture Decision Records
- ADR 0001: In-process synthesis of merged device streams
- ADR 0002: Gate workflow execution at the JobManager on context-stream readiness
- ADR 0003: Unified declaration model for workflow context bindings
- ADR 0004: Key workflow inputs uniformly by canonical stream name
- ADR 0005: Frame-gated per-session plot flush
- ADR 0006: Expose designated workflow outputs to NICOS as derived devices