{"id":20573548,"url":"https://github.com/lightweight-component/aj-workflow","last_synced_at":"2025-10-19T19:17:03.915Z","repository":{"id":244052447,"uuid":"814192999","full_name":"lightweight-component/aj-workflow","owner":"lightweight-component","description":"A workflow engine","archived":false,"fork":false,"pushed_at":"2025-03-02T09:43:59.000Z","size":84,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T10:27:52.125Z","etag":null,"topics":["workflow","workflow-engine"],"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/lightweight-component.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}},"created_at":"2024-06-12T14:13:42.000Z","updated_at":"2025-03-02T09:44:03.000Z","dependencies_parsed_at":"2025-01-16T21:23:53.244Z","dependency_job_id":"0b7df8b1-fa5a-407b-b067-d9b4abab24c3","html_url":"https://github.com/lightweight-component/aj-workflow","commit_stats":null,"previous_names":["lightweight-component/aj-workflow"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightweight-component%2Faj-workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightweight-component%2Faj-workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightweight-component%2Faj-workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightweight-component%2Faj-workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lightweight-component","download_url":"https://codeload.github.com/lightweight-component/aj-workflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242189652,"owners_count":20086604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["workflow","workflow-engine"],"created_at":"2024-11-16T05:28:04.454Z","updated_at":"2025-10-19T19:16:58.851Z","avatar_url":"https://github.com/lightweight-component.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A workflow engine 工作流\nA lightweight workflow engine for Java.\n\n# 如何理解工作流？\n对于未接触工作流系统的同学，可能好奇工作流到底扮演着一个什么的角色。网上介绍的通常比较抽象，——下面就利用笔者自己的话，说说对工作流系统的理解。\n\n一个工作流系统，首先定义了一系列的流程，然后通过 API 与其他第三方业务系统交互，\n比如 A 业务触发了某个流程，接着 B 业务触发下一个流程节点（进行下一步），最后工作流系统本身觉得此时某个条件被满足了，则进行下一个节点迁移，同时也触发了 C 业务系统得到业务的通知。\n\n这有点业务解耦的意味，工作流系统要处理一个或多个业务系统。这些业务系统都是来自于第三方的。工作流充当了一个中间层，将不同的业务系统连接起来，降低了各个系统之间的依赖度。\n\n除了业务解耦，还有用户视觉维度的解耦。试想想看，对于不同的权限的用户，允许参与者在流程的不同阶段输入数据或做出决策。\n\n这样延申的话，则业务逻辑不仅仅只是写于我们普通的 Java 代码中，而是被抽象并独立出来，游离于 Java/C#/Node 本身的业务系统，单独定义在工作流系统那么一个模块之中。\n\n而且，不是再写代码的方式，而是：1）表面是“可视化”的业务逻辑，直观化、图形化；2）底层是利用声明式的语言例如 XML 而不是 Java/C#/Node 去定义业务逻辑。这使得业务逻辑更容易理解和维护","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightweight-component%2Faj-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flightweight-component%2Faj-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightweight-component%2Faj-workflow/lists"}