Official Bundle¶
When to read this: you want the supported first-party integration story and need to know which extras to install.
The official first-party plugin package is agora-etl-plugins.
It exists to keep the core runtime focused while still giving the ecosystem a clear, supported integration layer.
For the 0.4.x production line, this package is the official first-party
backend and helper layer for Redis, Kafka, PostgreSQL, Anthropic, cron
scheduling, and distributed coordination. The core package remains
intentionally smaller: agora-etl supplies runtime contracts and registries;
the plugin package supplies backend implementations.
Anthropic completion support is part of this official first-party package
through the anthropic extra.
Compatibility¶
| Package | Supported line |
|---|---|
agora-etl |
>=0.4.1,<1 |
agora-etl-plugins |
0.4.x |
| Python | 3.11, 3.12, 3.13 |
Install¶
Install only the extras you need:
pip install "agora-etl-plugins[redis]"
pip install "agora-etl-plugins[cron]"
pip install "agora-etl-plugins[distributed]"
pip install "agora-etl-plugins[kafka]"
pip install "agora-etl-plugins[postgres]"
pip install "agora-etl-plugins[anthropic]"
Or install everything:
pip install "agora-etl-plugins[all]"
Quick decision table¶
| If you need... | Install | First object to try |
|---|---|---|
| Redis Streams, shared state, Redis-backed DLQ, exact dedup, AI cache | agora-etl-plugins[redis] |
RedisStreamSource, RedisSink, RedisBackend |
| Topic-based ingestion/delivery, schema registry, Kafka DLQ | agora-etl-plugins[kafka] |
KafkaSource, KafkaSink, KafkaDLQSink |
SQL extraction, upsert, COPY, relational DLQ, schema adapter |
agora-etl-plugins[postgres] |
PostgresSource, PostgresSink, PostgresSchemaAdapter |
| Claude completions and structured JSON output | agora-etl-plugins[anthropic] |
AnthropicProvider |
Cron expressions in Schedule.cron(...) |
agora-etl-plugins[cron] |
Schedule.cron(...) |
| Multi-worker lease ownership | agora-etl-plugins[distributed] |
RedisWorkerCoordinator |
Production install rule¶
Install the smallest extra set that matches the deployment. all is useful for
local evaluation, but production images are easier to audit when they only
include the backend clients they actually need.
Example install profiles¶
Event-driven stack¶
pip install "agora-etl-plugins[redis,kafka]"
Use this when Redis is the ingest/control plane and Kafka is the durable event backbone.
Kafka to operational store stack¶
pip install "agora-etl-plugins[kafka,postgres]"
Use this when Kafka owns ingestion and PostgreSQL owns queryable operational state or SQL-backed replay.
Relational sync stack¶
pip install "agora-etl-plugins[postgres,cron]"
Use this when jobs are scheduled and PostgreSQL is both the source of truth and the operational sink.
Multi-replica scheduled stack¶
pip install "agora-etl-plugins[postgres,cron,distributed]"
Use this when the same scheduled pipelines may run on more than one worker replica and exactly one worker should own each run.
Pick the right family¶
Redis¶
Choose Redis when one fast shared backend needs to cover stream ingestion, shared state, DLQ replay, dedup, or AI caching.
See: Redis
Kafka¶
Choose Kafka when your pipeline belongs on topics, partitions, and consumer-group semantics.
See: Kafka
PostgreSQL¶
Choose PostgreSQL when extract/load behavior is relational, SQL is an operator tooling strength, or DLQ records should live in a database table.
See: PostgreSQL
Anthropic¶
Choose Anthropic when the AI workflow is completion-driven and Claude models
fit the job, especially for enrichment, extraction, validation, translation, or
structured JSON output. In the current plugin line, the default Claude API
model is claude-haiku-4-5-20251001, and teams that want a newer unlisted id
must opt in explicitly.
See: Anthropic
Scheduling¶
Choose the scheduling plugin when jobs should follow calendar rules rather than just fixed intervals.
See: Scheduling
Distributed coordination¶
Choose distributed coordination when more than one worker instance may contend for the same scheduled pipeline run.