Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
b59a27f
docs(plans): add generic redesign design document
jasoet Mar 27, 2026
8ccf41e
docs(plans): add generic redesign implementation plan
jasoet Mar 27, 2026
04210b8
feat(store): add Store[T], RawStore, Codec[T] with LocalStore and Key…
jasoet Mar 27, 2026
6db13f9
feat(store): add S3Store implementing RawStore
jasoet Mar 27, 2026
fc71817
feat(store): add InstrumentedStore with OTel spans and metrics
jasoet Mar 27, 2026
3087f51
refactor(workflow): add output type parameter to orchestration input …
jasoet Mar 27, 2026
37001ab
feat(workflow): add shared DAG types with cycle detection
jasoet Mar 27, 2026
defd2cc
refactor(function): re-export payload types at package root
jasoet Mar 27, 2026
8992908
refactor(container): add type aliases at package root for convenience…
jasoet Mar 27, 2026
6f54553
refactor(function): make builder and patterns generic
jasoet Mar 27, 2026
5edbf25
refactor(container): add generic builder alongside container-specific…
jasoet Mar 27, 2026
8a6e5b5
refactor(container): add generic workflow entry points for pipeline a…
jasoet Mar 27, 2026
c8ee2f7
refactor(container): add generic typed workflow operations
jasoet Mar 27, 2026
d6ea11c
refactor(container): add generic source interfaces for workflow templ…
jasoet Mar 27, 2026
9b81cb3
refactor(function): simplify workflow wrappers to use generic types d…
jasoet Mar 27, 2026
f3e6d6c
refactor(function): update integration tests to use generic workflow …
jasoet Mar 27, 2026
3b84b98
Merge branch 'worktree-agent-abef452e' into feat/generic-redesign
jasoet Mar 27, 2026
67a1a80
Merge branch 'worktree-agent-a7f28d6e' into feat/generic-redesign
jasoet Mar 27, 2026
be64f36
fix(container): update generic builder and workflows for two-param in…
jasoet Mar 27, 2026
fec2533
refactor(datasync): migrate from artifacts.ArtifactConfig to store.Ra…
jasoet Mar 27, 2026
ae23bf6
chore: fix lint issues, update INSTRUCTION.md with store package docs
jasoet Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions INSTRUCTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ attribute commits to AI. This applies to ALL commits, including those made by to
|------|---------|
| `workflow/` | Generic workflow core (interfaces, orchestration logic) |
| `workflow/errors/` | Error types and handling |
| `workflow/artifacts/` | Artifact store (local + S3) |
| `workflow/store/` | Generic typed store (RawStore, Store[T], Codec[T]) |
| `workflow/artifacts/` | Artifact store (local + S3) — used by DAG workflows |
| `workflow/testutil/` | Shared test helpers (Temporal testcontainer) |
| `container/` | Container workflows (concrete implementation) |
| `container/activity/` | Temporal activities for container execution |
Expand Down Expand Up @@ -126,14 +127,16 @@ Multi-layer architecture organized as package-per-feature:
- Defines `TaskInput` and `TaskOutput` interface constraints using Go generics
- Provides generic orchestration: pipeline, parallel, loop, and single-task execution
- Activity dispatch via `ActivityName()` (string-based, not function reference) for Temporal compatibility
- Artifact storage abstraction (local filesystem, S3-compatible storage)
- Generic store package (`workflow/store/`): `RawStore` (byte-level), `Store[T]` (typed with `Codec[T]`), with local filesystem and S3 implementations
- Orchestration input types carry both `I` (input) and `O` (output) type parameters for type-safe pipeline composition
- Legacy artifact storage (`workflow/artifacts/`) still used by DAG workflows
- Error types shared across all implementations

**Container Module (`container/`)** — concrete implementation
- **Activities** wrap `github.com/jasoet/pkg/v2/docker` for container execution
- **Payloads** implement `TaskInput`/`TaskOutput` interfaces with validated structs (`go-playground/validator`)
- **Workflows** register with Temporal workers via `container.RegisterAll(w)`, using generic core for orchestration
- **Builder** provides a fluent API to compose container → pipeline → parallel → DAG
- **Builder** provides a fluent API to compose container → pipeline → parallel → DAG; generic builder alternative available
- **Templates** (container, script, HTTP) generate payload structs from higher-level config
- **Patterns** are pre-built workflow compositions (CI/CD pipelines, fan-out/fan-in, etc.)

Expand All @@ -142,7 +145,7 @@ Multi-layer architecture organized as package-per-feature:
- **Activity** dispatches to registered handlers via closure over the registry
- **Payloads** implement `TaskInput`/`TaskOutput` interfaces with validated structs
- **Workflows** register with Temporal workers, using generic core for orchestration (pipeline, parallel, loop, DAG)
- **Builder** provides a fluent API to compose function → pipeline → parallel → loop → DAG
- **Builder** provides a fluent API to compose function → pipeline → parallel → loop → DAG; generic builder alternative available
- **Patterns** are pre-built workflow compositions (ETL, fan-out/fan-in, batch processing, CI/CD DAG, etc.)

**DataSync Module (`datasync/`)** — concrete implementation
Expand Down
Loading
Loading