Metadata-Version: 2.5
Name: axiom-data-pipeline-topology
Version: 2.0.0
Summary: Axiom topology contracts, dependency graphs, and validation.
Project-URL: Homepage, https://github.com/juntai/axiom-data-pipeline-topology
Project-URL: Repository, https://github.com/juntai/axiom-data-pipeline-topology.git
Author-email: Juntai Team <dev@juntai.com>
License-File: LICENSE
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# Axiom Data Pipeline Topology

[简体中文](README_zh.md) · [Development](DEVELOPMENT.md)

`axiom-data-pipeline-topology` owns production topology, validation, schedule,
and immutable revision contracts. It validates bounded DAGs, exact runtime
artifacts, resource requests, and security labels before a revision can be
activated.

`KESTopologyRepository` is the persistence adapter. It accepts a native KES
connection factory and stores immutable topology revisions, active revision
pointers, schedules, leases, and observations in the Axiom KES schema. The
package provides no process-local authority.

## Public surface

- `TopologyRevisionCreate`, `TopologyRevision`, and `TopologyValidation`
- `TopologyValidator`, `ExecutionGraph`, `TaskNode`, and `ResourceRequest`
- `ScheduleDefinition`, `ScheduleKind`, `ScheduleState`, and
  `ScheduleObservation`
- `KESTopologyRepository` and `TopologyService`

Topology revision IDs equal the canonical SHA-256 digest of their complete
content. Production nodes must reference exact artifact digests. Schedule kinds
are manual, bounded interval, or continuous Kafka partition consumption.

## Service flow

```text
validate request -> create immutable KES revision -> activate exact revision
                                                \-> create/pause/resume schedule
```

The Axiom orchestrator exposes these operations through its authenticated HTTP
API and owns schedule execution. This package never provisions Ray, Kafka, or
other platform services.

## Verification

```bash
python -m pytest
ruff check src tests
python -m build
```

## License

See [LICENSE](LICENSE).
