{"id":13472302,"url":"https://github.com/Netflix/maestro","last_synced_at":"2025-03-26T15:31:57.917Z","repository":{"id":245653384,"uuid":"787678390","full_name":"Netflix/maestro","owner":"Netflix","description":"Maestro: Netflix’s Workflow Orchestrator","archived":false,"fork":false,"pushed_at":"2024-08-09T16:56:17.000Z","size":1007,"stargazers_count":3296,"open_issues_count":28,"forks_count":203,"subscribers_count":162,"default_branch":"main","last_synced_at":"2024-10-29T15:10:21.455Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Netflix.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-04-17T01:15:56.000Z","updated_at":"2024-10-28T10:28:09.000Z","dependencies_parsed_at":"2024-07-21T07:24:18.159Z","dependency_job_id":"c6643097-0580-42ac-86a0-f83c43450a22","html_url":"https://github.com/Netflix/maestro","commit_stats":null,"previous_names":["netflix/maestro"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netflix%2Fmaestro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netflix%2Fmaestro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netflix%2Fmaestro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netflix%2Fmaestro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netflix","download_url":"https://codeload.github.com/Netflix/maestro/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222151629,"owners_count":16939423,"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":[],"created_at":"2024-07-31T16:00:53.654Z","updated_at":"2025-03-26T15:31:57.904Z","avatar_url":"https://github.com/Netflix.png","language":"Java","readme":"Maestro\n===================================\n[Maestro](https://netflixtechblog.com/orchestrating-data-ml-workflows-at-scale-with-netflix-maestro-aaa2b41b800c)\nis a general-purpose workflow orchestrator that \nprovides a fully managed workflow-as-a-service (WAAS) to the data platform users at Netflix.\n\nIt serves thousands of users, including data scientists, data engineers, machine learning engineers,\nsoftware engineers, content producers, and business analysts, for various use cases.\nIt schedules hundreds of thousands of workflows, millions of jobs every day\nand operates with a strict SLO even when there are spikes in the traffic.\nMaestro is highly scalable and extensible to support existing and new use cases and offers enhanced usability to end users.\n\nYou can read more details about it in our latest [blog post](https://netflixtechblog.com/maestro-netflixs-workflow-orchestrator-ee13a06f9c78).\n\n# Get started\n## Prerequisite\n- Git\n- Java 21\n- Gradle\n- Docker\n\n\n## Build it\n- `./gradlew build`\n\n## Run it\n- `./gradlew bootRun`\n\n## Run it with AWS module\n- `docker compose -f maestro-aws/docker-compose.yml up`\n- `./gradlew bootRun --args='--spring.profiles.active=aws'`\n\n## Create a sample workflow\n- `curl --header \"user: tester\" -X POST 'http://127.0.0.1:8080/api/v3/workflows' -H \"Content-Type: application/json\" -d @maestro-server/src/test/resources/samples/sample-dag-test-1.json`\n\n## Get the sample workflow definition\n- `curl -X GET 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1/versions/latest'`\n\n## Trigger to run the sample workflow\n- `curl --header \"user: tester\" -X POST 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1/versions/latest/actions/start' -H \"Content-Type: application/json\" -d '{\"initiator\": {\"type\": \"manual\"}}'`\n\n## Get the sample workflow instance\n- `curl -X GET 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1/instances/1/runs/1'`\n\n## Delete the sample workflow and its data\n- `curl --header \"user: tester\" -X DELETE 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1'`\n\n## Run it with Kubernetes support\n- setup kubernetes configs so the kubectl command works\n- `./gradlew bootRun`\n- `curl --header \"user: tester\" -X POST 'http://127.0.0.1:8080/api/v3/workflows' -H \"Content-Type: application/json\" -d @maestro-server/src/test/resources/samples/sample-kubernetes-wf.json`\n- `curl --header \"user: tester\" -X POST 'http://127.0.0.1:8080/api/v3/workflows/sample-kubernetes-wf/versions/latest/actions/start' -H \"Content-Type: application/json\" -d '{\"initiator\": {\"type\": \"manual\"}}'`\n\n# License\nCopyright 2024 Netflix, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","funding_links":[],"categories":["Java","others","Building","Repos","后端开发框架及项目"],"sub_categories":["Workflows","后端项目_其他"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNetflix%2Fmaestro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNetflix%2Fmaestro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNetflix%2Fmaestro/lists"}