{"id":50952110,"url":"https://github.com/vdenisov/transflux","last_synced_at":"2026-06-18T02:32:49.955Z","repository":{"id":357624234,"uuid":"1036683925","full_name":"vdenisov/transflux","owner":"vdenisov","description":"Lightweight microflow orchestration library for reliable state transitions","archived":false,"fork":false,"pushed_at":"2026-06-14T17:18:16.000Z","size":1061,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T18:09:27.930Z","etag":null,"topics":["embeddable","finite-state-machine","java","library","microflow","orchestration","saga"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vdenisov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-12T12:41:07.000Z","updated_at":"2026-06-14T17:18:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vdenisov/transflux","commit_stats":null,"previous_names":["vdenisov/transflux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vdenisov/transflux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdenisov%2Ftransflux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdenisov%2Ftransflux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdenisov%2Ftransflux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdenisov%2Ftransflux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdenisov","download_url":"https://codeload.github.com/vdenisov/transflux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdenisov%2Ftransflux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34474063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embeddable","finite-state-machine","java","library","microflow","orchestration","saga"],"created_at":"2026-06-18T02:32:48.969Z","updated_at":"2026-06-18T02:32:49.950Z","avatar_url":"https://github.com/vdenisov.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Transflux\n\nTransflux is a lightweight microflow orchestration library designed to automate and coordinate state changes for business entities. It focuses on orchestrating transitions (including step sequencing, pre- / post-conditions, triggers, error handling, and compensations), unlike long‑running workflow engines like Camunda or Flowable.\n\n## Goals\n- Lightweight, embeddable library that integrates easily with existing codebases\n- No dedicated persistence: operates on your existing domain entities and persistence frameworks\n- Reliable orchestration of complex transitions with compensations (Saga‑like)\n- Reusable components: operations, steps, triggers, listeners\n- Both programmatic and declarative (via YAML DSL) definitions\n\nSee requirements.md for the full vision and scope.\n\n## Project Status\nPhase 1 (Core Foundation) is essentially complete: programmatic state machine builder, paired `StateResolver` / `StateApplier`, `TransitionResult` with executed/compensated step lists and timing metadata, and the `TransfluxException` hierarchy are all in place. Operations, conditions, triggers, listeners, and the YAML DSL are upcoming phases.\n\nThe project is in active design and the public API is unstable. **No releases are published before v1.0** — see `todo.md` for the phased roadmap.\n\n## Build\n- Prerequisites: JDK 21+ to build (enforced via Maven toolchains); the library compiles to Java 11 bytecode and is compatible with Java 11+ runtimes. Maven 3.9+.\n- Run tests: `mvn -q clean test`\n- Run a single spec: `mvn -q test -Dtest=StateMachineImplSpec`\n- Coverage report: `target/site/jacoco/index.html`\n\n## Package Structure\n- `org.transflux.core` — entry point (`Transflux`), `StateMachine` / `StateMachineDef`, `ContextScope`, the `Identifiable` marker, and the `Preconditions` argument-precondition helpers.\n- `org.transflux.core.state` — `State`, `StateDef`, and the host-supplied `StateResolver` / `StateApplier` bridges.\n- `org.transflux.core.transition` — `Transition`, `TransitionDef`, `TransitionResult`, and `StepPath` (the qualified-id value carrier in `TransitionResult.executedStepIds` / `compensatedStepIds`).\n- `org.transflux.core.operation` — `Operation`, `Step`, `Compensation`, `ContextMapper`, and their def-side types (`SimpleOperationDef` / `CompositeOperationDef` / `StepDef` / `MapperDef` / `ConditionalStepDef` / `BranchDef` / `DefaultBranchDef` / `NoMatchBehavior`).\n- `org.transflux.core.condition` — `Condition` and `ConditionDescriptor`.\n- `org.transflux.core.exception` — `TransfluxException` and its subclasses.\n- `org.transflux.core.impl` — framework-internal implementations: every `*Impl`, the `Registry` / `Component` lookup machinery, the bound-record / action-ref / mapper-ref infrastructure, the SpEL evaluation utilities (`ConditionResolver`, `SpelConditionEvaluator`, `ExpressionIdDerivation`), the runtime-internal `TransitionView`, and the shared utilities (`ValidationUtils`, `ThrowingUtils`, `ReflectionUtils`). User code should not depend on this package directly.\n\n## Contributing and Workflow\n- Default branch: `main`.\n- Commit messages: follow Conventional Commits (e.g., `feat: add state validation`, `fix: correct transition check`).\n\n## License\nApache License 2.0. See LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdenisov%2Ftransflux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdenisov%2Ftransflux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdenisov%2Ftransflux/lists"}