Architecture
Elastic.Ingest.Elasticsearch is built from three layered packages, each with a distinct responsibility.
| Package | Responsibility |
|---|---|
Elastic.Channels |
Thread-safe buffered channel with backpressure, batching, concurrent export, and retry |
Elastic.Ingest.Transport |
Integrates Elastic.Transport (ITransport) into the channel pipeline |
Elastic.Ingest.Elasticsearch |
Elasticsearch bulk API, composable strategies, orchestrators |
┌───────────────────────────────────┐
│ Elastic.Ingest.Elasticsearch │ strategies, channels, orchestrators
├───────────────────────────────────┤
│ Elastic.Ingest.Transport │ ITransport integration
├───────────────────────────────────┤
│ Elastic.Channels │ buffered channel infrastructure
└───────────────────────────────────┘
You only need to install Elastic.Ingest.Elasticsearch. The other packages are pulled in as transitive dependencies.
- Push model: how the two-stage buffer moves documents from producers to Elasticsearch
- Channel hierarchy: the class hierarchy from
BufferedChannelBasetoIngestChannel<T> - Transport layer: how
Elastic.Ingest.Transportbridges channels and Elasticsearch