Graylog2 / Graylog2/graylog2-server

Research: simplify input architecture

Open
#11,772 0 comments 0 reactions 0 assignees View on GitHub
improvement needs-discussion triaged
Dominant language
Java
Stars
8.1k
Forks
1.1k
Avg merge
1d 20h
Merged PRs (30d)
217

Description

The class hierarchy, instantiation, and persisting of inputs is quite complex, making it hard to maintain and prone to regressions.
E.g.:
- static fields are persisted in a different format than how they are represented in memory, making serializing of inputs more [complicated](https://github.com/Graylog2/graylog2-server/issues/11739) and requiring multiple DB writes to update a single input
- different objects are built from the same DTO, depending on [context](https://github.com/Graylog2/graylog-plugin-enterprise/pull/2923)
- modifying the state of an input triggers events, that can cause unexpected side effects
- sharing between core and forwarder make changes to input classes more difficult

Desired results:
- documentation of input architecture and lifecycle
- list of issues that impact maintainability and performance of the input object life-cycle
- assessment of cost/benefit of addressing them
- new issues created, targeting specific improvements that were deemed worthwhile in the prior analysis

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.