> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telophasehq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Ingest data from sockets, queues, files, or streaming systems.

Sources define **where Tangent reads data from** — for example, a local Unix socket, Amazon SQS queue, file, or Kafka/MSK topic.\
Each source reads raw bytes, applies a configured [`decoding`](/configuration/sources/decoding) policy, and emits structured records into Tangent’s pipeline.

***

## Source Types

| Type                                      | Description                                            | Example                                   |
| ----------------------------------------- | ------------------------------------------------------ | ----------------------------------------- |
| [`socket`](/configuration/sources/socket) | Local Unix domain socket (fastest for local ingestion) | `/tmp/sidecar.sock`                       |
| [`file`](/configuration/sources/file)     | Read structured logs from local or mounted files       | `/var/log/app/access.log`                 |
| [`msk`](/configuration/sources/msk)       | Consume from Amazon MSK (Kafka) topics                 | `b-1.example.com:9092`                    |
| [`sqs`](/configuration/sources/sqs)       | Poll messages from Amazon SQS queues                   | `https://sqs.us-east-1.amazonaws.com/...` |

***

## Common Configuration

Every source supports a few shared parameters:

<ParamField path="type" type="string" required>
  Selects the source type.\
  One of: `socket`, `file`, `msk`, or `sqs`.
</ParamField>

<ParamField path="decoding" type="object">
  Defines how incoming bytes are parsed into structured records.\
  See [Decoding](/configuration/sources/decoding) for format and compression options.
</ParamField>

***

## Example (MSK Source)

```yaml tangent.yaml icon=download theme={null}
sources:
  kafka_in:
    type: msk
    bootstrap_servers: "b-1.example.com:9092,b-2.example.com:9092"
    topic: logs
    group_id: tangent-node
    decoding:
      format: ndjson
      compression: auto
```

***

## Behavior

* Each source runs in its own async worker, managed by Tangent’s runtime.
* Data is read continuously, batched in memory, and flushed based on runtime settings (`batch_size` / `batch_age`).
* Decoding and optional re-encoding happen before the data enters the plugin or sink DAG.

***

## See also

* [Decoding](/configuration/sources/decoding)
* [Runtime Configuration](/configuration/runtime)
* [DAG](/configuration/dag)
