Herringbone is a modular framework for building SIEM and log management systems. It is designed to be flexible, composable, and deployable in many different ways, depending on your needs.

See the Wiki for guides, concepts, and usage documentation.
Herringbone is built from small, independent services called elements.
Each element performs a single, well-defined function and can run on its own.
Related elements can be grouped into Units, which represent a larger capability or purpose. Units are organizational—not mandatory deployment boundaries.
For example, the Detection Engine Unit includes the Ruleset and Detector elements:
You can run these elements together, separately, or alongside other systems. You are never required to deploy a full Unit.
All elements follow two core principles:
Independence
Each element can run and scale on its own without tight coupling to other elements.
Interoperability
Elements communicate through consistent, well-defined inputs and outputs, making them easy to integrate with each other or with external systems.
Because of this, Herringbone components can be deployed almost anywhere. While development and testing focus on Kubernetes, elements can run as standalone containers across different environments as long as they share access to the same data store.
Contributions are welcome. Please read the Contributing guide before submitting issues or pull requests. All changes require review before merging.
Herringbone is released under the Apache 2.0 License.