﻿---
title: Architecture
description: Elastic.Ingest.Elasticsearch is built from three layered packages, each with a distinct responsibility. You only need to install Elastic.Ingest.Elasticsearch...
url: https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/architecture
---

# Architecture
Elastic.Ingest.Elasticsearch is built from three layered packages, each with a distinct responsibility.

## Packages


| 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.

## Topics

- [Push model](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/architecture/push-model): how the two-stage buffer moves documents from producers to Elasticsearch
- [Channel hierarchy](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/architecture/channel-hierarchy): the class hierarchy from `BufferedChannelBase` to `IngestChannel<T>`
- [Transport layer](https://docs-v3-preview.elastic.dev/elastic-ingest-dotnet/architecture/transport-layer): how `Elastic.Ingest.Transport` bridges channels and Elasticsearch