Metadata-Version: 2.4
Name: trellis-process
Version: 0.3.0
Summary: A lightweight process tracker (Process / ProcessStep) for long-running, distributed workflows.
License: MIT
Keywords: workflow,saga,process-tracker,ddd,distributed-systems
Author: Anthony Morris
Author-email: morrisaa@v-is.com
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: dynamodb
Requires-Dist: boto3 (>=1.35.0,<2.0.0) ; extra == "dynamodb"
Project-URL: Homepage, https://github.com/Versailles-Information-Systems/trellis-process
Project-URL: Repository, https://github.com/Versailles-Information-Systems/trellis-process
Description-Content-Type: text/markdown

<p align="center">
  <img src="trellis-logo.png" alt="trellis logo" width="400">
</p>

# trellis

_A lightweight process tracker for long-running, distributed workflows._

`trellis` gives you a small, reusable **Process / ProcessStep** domain model
you can use to track business workflows across services and bounded contexts.

It works great for:

- High-level journeys (e.g. **referral lifecycle** in Harmony)
- Sub-processes (e.g. **authorization flow** or **claim adjudication** in Pulse)
- Any long-running process where multiple steps must eventually complete

Trellis is intentionally **storage-agnostic**: you bring your own database
(PostgreSQL, DynamoDB, etc.) and wire it via a repository interface. The core
library focuses on the **domain model** and invariants.

---

## Features

- ✅ Generic `Process` + `ProcessStep` model
- ✅ Supports multiple `process_type`s (e.g. `"ReferralJourney"`, `"ClaimAdjudication"`)
- ✅ Tracks required steps, state (`pending`, `in_progress`, `completed`, `failed`)
- ✅ Simple API: `mark_step_completed`, `mark_step_failed`, `has_failed`, `is_completed`
- ✅ Storage-agnostic: integrate with Postgres, DynamoDB, etc.
- ✅ In-memory repository for demos and unit tests

---

## Installation

```bash
pip install trellis-process
```

