{"id":18796346,"url":"https://github.com/fristonio/xene","last_synced_at":"2025-08-19T22:06:58.135Z","repository":{"id":44140279,"uuid":"228669565","full_name":"fristonio/xene","owner":"fristonio","description":"A distributed workflow runner.","archived":false,"fork":false,"pushed_at":"2023-05-05T02:24:44.000Z","size":1169,"stargazers_count":70,"open_issues_count":15,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-13T15:52:15.932Z","etag":null,"topics":["airflow","cloud","dag","distributed-systems","docker","golang","kubernetes","workflow","workflow-engine"],"latest_commit_sha":null,"homepage":"https://xene-api-docs.netlify.app","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fristonio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-17T17:38:08.000Z","updated_at":"2024-12-04T12:29:38.000Z","dependencies_parsed_at":"2024-06-19T05:32:26.829Z","dependency_job_id":"f87b3db7-2095-4085-a736-0e4c378a074e","html_url":"https://github.com/fristonio/xene","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fristonio/xene","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fristonio%2Fxene","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fristonio%2Fxene/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fristonio%2Fxene/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fristonio%2Fxene/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fristonio","download_url":"https://codeload.github.com/fristonio/xene/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fristonio%2Fxene/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263940313,"owners_count":23533012,"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":["airflow","cloud","dag","distributed-systems","docker","golang","kubernetes","workflow","workflow-engine"],"created_at":"2024-11-07T21:39:40.365Z","updated_at":"2025-07-06T17:07:43.937Z","avatar_url":"https://github.com/fristonio.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Xene\n\n\u003e A distributed workflow runner with focus on performance and simplicity.\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/f3adc406-ad04-4059-ad21-6a54f4be6771/deploy-status)](https://app.netlify.com/sites/sad-thompson-bcaa9a/deploys) ![Travis Status](https://travis-ci.com/fristonio/xene.svg?token=xvk2YsyqhEExfPszH3rV\u0026branch=master) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Go Report Card](https://goreportcard.com/badge/github.com/fristonio/xene)](https://goreportcard.com/report/github.com/fristonio/xene) [![Go Doc](https://godoc.org/github.com/fristonio/xene?status.svg)](https://godoc.org/github.com/fristonio/xene)\n\n\nXene is a high performance, distributed workflow execution platform. It lets you create custom workflows in the form of a Directed Acyclic Graph, which can then be executed based on a trigger configured with the workflow.\n\nXene is built with Golang with a focus on performance, resiliency, and simplicity. Xene internally runs in a way similar to Kubernetes by getting triggered on a level and then reconciling the desired state with the current state. Currently, xene supports [Badger](https://github.com/dgraph-io/badger) as the storage engines, which is pluggable and can be replaced with a similar key-value store.\n\n## Features\n\nXene aims to tackle two main problems in any workflow execution system:\n\n1. Low resource footprint\n2. Flexibility and Simplicity\n\nXene exploits a lot of small enhancement to reduce the network and memory footprint of the executors and APIServer.\nAPIServer acts as the brains of the whole ecosystem by directing the decisions of scheduling workloads and managing coordination\nbetween all the moving components. All the communication between APIServer and Agent is encrypted using mTLS and xene doesn't require\nAgents to communicate with each other reducing network footprint.\n\nXene derives a lot of its design decisions from Kubernetes, like:\n\n- Like Kubernetes, xene is also level triggered and does the reconciliation of state described by the user with the actual state.\n- It also uses a KeyValue store to store all the states and objects. To reduce the memory footprint, xene supports the use of [Badger](https://github.com/dgraph-io/badger) as a key-value store.\n- Objects are reconciled using controllers configured to watch changes on keys in the KVStore.\n\nSome of the main features of Xene are:\n\n- Locally running workflow from provided specs.\n- Command line tool for xene(xenectl) to interact with apiserver.\n- mTLS based authentication between agent and apiserver.\n- JWT based authentication for API server.\n- Google OAuth based authentication integration.\n- [Beta UI](https://github.com/fristonio/xene-ui) based on React and Typescript\n- Workflow creation and running on top of Docker based container runtime executor on the agent.\n- Secrets management for agents.\n- Workflow pipelines run live log streaming and status feed.\n- Google based OAuth for APIServer with domain filtered authorization.\n\n## Contributing\n\nIf you'd like to contribute to this project, refer to the [contributing guide](Contributing.md).\n\nYou can start with setting up Xene on your system and try solving a few bugs listed here: https://github.com/fristonio/xene/issues\n\n## Documentation\n\n- [API Docs](https://xene-api-docs.netlify.app/apidocs.html)\n- [Roadmap](/ROADMAP.md)\n- [Xene Documentation](https://xene-api-docs.netlify.app/)\n- [Go Doc](https://pkg.go.dev/github.com/fristonio/xene)\n- [Getting Started](/docs/GettingStarted.md)\n\n## License\n\nXene is licensed under [MIT License](https://github.com/fristonio/xene/blob/master/LICENSE.md).\n\n## Contact\n\nIf you have any queries regarding the project or just want to say hello, feel free to drop a mail at deepshpathak@gmail.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffristonio%2Fxene","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffristonio%2Fxene","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffristonio%2Fxene/lists"}