{"id":19601480,"url":"https://github.com/stackstorm/orquesta","last_synced_at":"2025-04-05T20:08:45.773Z","repository":{"id":7731494,"uuid":"41645436","full_name":"StackStorm/orquesta","owner":"StackStorm","description":"Orquesta is a graph based workflow engine for StackStorm. Questions? https://github.com/StackStorm/st2/discussions","archived":false,"fork":false,"pushed_at":"2025-02-25T05:09:06.000Z","size":2058,"stargazers_count":101,"open_issues_count":24,"forks_count":39,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-03-29T19:07:37.183Z","etag":null,"topics":["automation","devops","orchestration","orquesta","stackstorm","workflow-engine","workflow-execution","workflows"],"latest_commit_sha":null,"homepage":"https://docs.stackstorm.com/orquesta/","language":"Python","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/StackStorm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","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":"2015-08-30T22:43:19.000Z","updated_at":"2025-02-25T05:09:11.000Z","dependencies_parsed_at":"2023-09-23T13:01:20.634Z","dependency_job_id":"9dadad4d-e72d-4271-9ba3-47624d6b4371","html_url":"https://github.com/StackStorm/orquesta","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StackStorm%2Forquesta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StackStorm%2Forquesta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StackStorm%2Forquesta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StackStorm%2Forquesta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StackStorm","download_url":"https://codeload.github.com/StackStorm/orquesta/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393571,"owners_count":20931813,"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":["automation","devops","orchestration","orquesta","stackstorm","workflow-engine","workflow-execution","workflows"],"created_at":"2024-11-11T09:18:35.252Z","updated_at":"2025-04-05T20:08:45.758Z","avatar_url":"https://github.com/StackStorm.png","language":"Python","readme":"# Orquesta\n\nOrquesta is a graph based workflow engine designed specifically for\n[StackStorm](https://github.com/StackStorm/st2). As a building block, Orquesta does not include\nall the parts such as messaging, persistence, and locking required to run as a service.\n\nThe engine consists of the workflow models that are decomposed from the language spec, the composer\nthat composes the execution graph from the workflow models, and the conductor that directs the\nexecution of the workflow using the graph.\n\nA workflow definition is a structured YAML file that describes the intent of the workflow. A\nworkflow is made up of one or more tasks. A task defines what action to execute, with what input.\nWhen a task completes, it can transition into other tasks based upon criteria. Tasks can also\npublish output for the next tasks. When there are no more tasks to execute, the workflow is\ncomplete.\n\nOrquesta includes a native language spec for the workflow definition. The language spec is\ndecomposed into various models and described with [JSON schema](http://json-schema.org/). A\nworkflow composer that understands the models converts the workflow definition into a directed\ngraph. The nodes represent the tasks and edges are the task transition. The criteria for task\ntransition is an attribute of the edge. The graph is the underpinning for conducting the workflow\nexecution. The workflow definition is just syntactic sugar.\n\nOrquesta allows for one or more language specs to be defined. So as long as the workflow\ndefinition, however structured, is composed into the expected graph, the workflow conductor can\nhandle it.\n\nThe workflow execution graph can be a directed graph or a directed cycle graph. It can have one or\nmore root nodes which are the starting tasks for the workflow. The graph can have branches that run\nin parallel and then converge back to a single branch. A single branch in the graph can diverge into\nmultiple branches. The graph model exposes operations to identify starting tasks, get inbound and\noutbound task transitions, get connected tasks, and check if cycle exists. The graph serves more\nlike a map for the conductor. It is stateless and does not contain any runtime data such as task\nstatus and result.\n\nThe workflow conductor traverses the graph, directs the flow of the workflow execution, and\ntracks runtime state of the execution. The conductor does not actually execute the action that is\nspecified for the task. The action execution is perform by another provider such as StackStorm. The\nconductor directs the provider on what action to execute. As each action execution completes, the\nprovider relays the status and result back to the conductor. The conductor then takes the state\nchange, keeps track of the sequence of task execution, manages change history of the runtime\ncontext, evaluate outbound task transitions, identifies any new tasks for execution, and determines\nthe overall workflow state and result.\n\n## Copyright, License, and Contributors Agreement\n\nCopyright 2019-2021 The StackStorm Authors.\nCopyright 2014-2018 StackStorm, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this work except\nin compliance with the License. You may obtain a copy of the License in the [LICENSE](LICENSE)\nfile or at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\nBy contributing you agree that these contributions are your own (or approved by your employer) and\nyou grant a full, complete, irrevocable copyright license to all users and developers of the\nproject, present and future, pursuant to the license of the project.\n\n## Getting Help\n\nIf you need help or get stuck at any point during development, stop by on our\n[Slack Community](https://stackstorm.com/community-signup) and we will do our best to assist you.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackstorm%2Forquesta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackstorm%2Forquesta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackstorm%2Forquesta/lists"}