├── .formatter.exs ├── .github ├── FUNDING.yml ├── dependabot.yml ├── renovate.json └── workflows │ ├── branch_main.yml │ ├── part_dependabot.yml │ ├── part_docs.yml │ ├── part_release.yml │ ├── part_test.yml │ ├── pr.yml │ ├── tag-beta.yml │ └── tag-stable.yml ├── .gitignore ├── .tool-versions ├── CHANGELOG.md ├── LICENSE ├── README.md ├── assets └── quantum-elixir-logo.svg ├── config ├── .credo.exs └── config.exs ├── dialyzer.ignore-warnings ├── lib ├── quantum.ex └── quantum │ ├── clock_broadcaster.ex │ ├── clock_broadcaster │ ├── event.ex │ ├── init_opts.ex │ ├── start_opts.ex │ └── state.ex │ ├── execution_broadcaster.ex │ ├── execution_broadcaster │ ├── event.ex │ ├── init_opts.ex │ ├── start_opts.ex │ └── state.ex │ ├── executor.ex │ ├── executor │ └── start_opts.ex │ ├── executor_supervisor.ex │ ├── executor_supervisor │ ├── init_opts.ex │ └── start_opts.ex │ ├── job.ex │ ├── job_broadcaster.ex │ ├── job_broadcaster │ ├── init_opts.ex │ ├── start_opts.ex │ └── state.ex │ ├── node_selector_broadcaster.ex │ ├── node_selector_broadcaster │ ├── event.ex │ ├── init_opts.ex │ ├── start_opts.ex │ └── state.ex │ ├── normalizer.ex │ ├── run_strategy.ex │ ├── run_strategy │ ├── all.ex │ ├── local.ex │ └── random.ex │ ├── storage.ex │ ├── storage │ └── noop.ex │ ├── supervisor.ex │ ├── task_registry.ex │ └── task_registry │ ├── init_opts.ex │ ├── start_opts.ex │ └── state.ex ├── mix.exs ├── pages ├── configuration.md ├── crontab-format.md ├── run-strategies.md ├── runtime-configuration.md └── supervision-tree.md ├── priv └── plts │ └── .gitkeep └── test ├── quantum ├── clock_broadcaster_test.exs ├── execution_broadcaster_test.exs ├── executor_test.exs ├── job_broadcaster_test.exs ├── job_test.exs ├── node_selector_broadcaster_test.exs ├── normalizer_test.exs ├── run_strategy_test.exs ├── scheduler_test.exs └── task_registry_test.exs ├── quantum_startup_test.exs ├── quantum_test.exs ├── support ├── capture_log_extend.ex ├── test_consumer.ex ├── test_producer.ex └── test_storage.ex └── test_helper.exs /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: maennchen 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "enabledManagers": ["asdf"] 3 | } -------------------------------------------------------------------------------- /.github/workflows/branch_main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/branch_main.yml -------------------------------------------------------------------------------- /.github/workflows/part_dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/part_dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/part_docs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/part_docs.yml -------------------------------------------------------------------------------- /.github/workflows/part_release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/part_release.yml -------------------------------------------------------------------------------- /.github/workflows/part_test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/part_test.yml -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/pr.yml -------------------------------------------------------------------------------- /.github/workflows/tag-beta.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/tag-beta.yml -------------------------------------------------------------------------------- /.github/workflows/tag-stable.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.github/workflows/tag-stable.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/.gitignore -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | erlang 28.2 2 | elixir 1.19.4 3 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/README.md -------------------------------------------------------------------------------- /assets/quantum-elixir-logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/assets/quantum-elixir-logo.svg -------------------------------------------------------------------------------- /config/.credo.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/config/.credo.exs -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/config/config.exs -------------------------------------------------------------------------------- /dialyzer.ignore-warnings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/dialyzer.ignore-warnings -------------------------------------------------------------------------------- /lib/quantum.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum.ex -------------------------------------------------------------------------------- /lib/quantum/clock_broadcaster.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/clock_broadcaster.ex -------------------------------------------------------------------------------- /lib/quantum/clock_broadcaster/event.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/clock_broadcaster/event.ex -------------------------------------------------------------------------------- /lib/quantum/clock_broadcaster/init_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/clock_broadcaster/init_opts.ex -------------------------------------------------------------------------------- /lib/quantum/clock_broadcaster/start_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/clock_broadcaster/start_opts.ex -------------------------------------------------------------------------------- /lib/quantum/clock_broadcaster/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/clock_broadcaster/state.ex -------------------------------------------------------------------------------- /lib/quantum/execution_broadcaster.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/execution_broadcaster.ex -------------------------------------------------------------------------------- /lib/quantum/execution_broadcaster/event.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/execution_broadcaster/event.ex -------------------------------------------------------------------------------- /lib/quantum/execution_broadcaster/init_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/execution_broadcaster/init_opts.ex -------------------------------------------------------------------------------- /lib/quantum/execution_broadcaster/start_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/execution_broadcaster/start_opts.ex -------------------------------------------------------------------------------- /lib/quantum/execution_broadcaster/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/execution_broadcaster/state.ex -------------------------------------------------------------------------------- /lib/quantum/executor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/executor.ex -------------------------------------------------------------------------------- /lib/quantum/executor/start_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/executor/start_opts.ex -------------------------------------------------------------------------------- /lib/quantum/executor_supervisor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/executor_supervisor.ex -------------------------------------------------------------------------------- /lib/quantum/executor_supervisor/init_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/executor_supervisor/init_opts.ex -------------------------------------------------------------------------------- /lib/quantum/executor_supervisor/start_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/executor_supervisor/start_opts.ex -------------------------------------------------------------------------------- /lib/quantum/job.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/job.ex -------------------------------------------------------------------------------- /lib/quantum/job_broadcaster.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/job_broadcaster.ex -------------------------------------------------------------------------------- /lib/quantum/job_broadcaster/init_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/job_broadcaster/init_opts.ex -------------------------------------------------------------------------------- /lib/quantum/job_broadcaster/start_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/job_broadcaster/start_opts.ex -------------------------------------------------------------------------------- /lib/quantum/job_broadcaster/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/job_broadcaster/state.ex -------------------------------------------------------------------------------- /lib/quantum/node_selector_broadcaster.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/node_selector_broadcaster.ex -------------------------------------------------------------------------------- /lib/quantum/node_selector_broadcaster/event.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/node_selector_broadcaster/event.ex -------------------------------------------------------------------------------- /lib/quantum/node_selector_broadcaster/init_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/node_selector_broadcaster/init_opts.ex -------------------------------------------------------------------------------- /lib/quantum/node_selector_broadcaster/start_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/node_selector_broadcaster/start_opts.ex -------------------------------------------------------------------------------- /lib/quantum/node_selector_broadcaster/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/node_selector_broadcaster/state.ex -------------------------------------------------------------------------------- /lib/quantum/normalizer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/normalizer.ex -------------------------------------------------------------------------------- /lib/quantum/run_strategy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/run_strategy.ex -------------------------------------------------------------------------------- /lib/quantum/run_strategy/all.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/run_strategy/all.ex -------------------------------------------------------------------------------- /lib/quantum/run_strategy/local.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/run_strategy/local.ex -------------------------------------------------------------------------------- /lib/quantum/run_strategy/random.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/run_strategy/random.ex -------------------------------------------------------------------------------- /lib/quantum/storage.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/storage.ex -------------------------------------------------------------------------------- /lib/quantum/storage/noop.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/storage/noop.ex -------------------------------------------------------------------------------- /lib/quantum/supervisor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/supervisor.ex -------------------------------------------------------------------------------- /lib/quantum/task_registry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/task_registry.ex -------------------------------------------------------------------------------- /lib/quantum/task_registry/init_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/task_registry/init_opts.ex -------------------------------------------------------------------------------- /lib/quantum/task_registry/start_opts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/task_registry/start_opts.ex -------------------------------------------------------------------------------- /lib/quantum/task_registry/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/lib/quantum/task_registry/state.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/mix.exs -------------------------------------------------------------------------------- /pages/configuration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/pages/configuration.md -------------------------------------------------------------------------------- /pages/crontab-format.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/pages/crontab-format.md -------------------------------------------------------------------------------- /pages/run-strategies.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/pages/run-strategies.md -------------------------------------------------------------------------------- /pages/runtime-configuration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/pages/runtime-configuration.md -------------------------------------------------------------------------------- /pages/supervision-tree.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/pages/supervision-tree.md -------------------------------------------------------------------------------- /priv/plts/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/quantum/clock_broadcaster_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/clock_broadcaster_test.exs -------------------------------------------------------------------------------- /test/quantum/execution_broadcaster_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/execution_broadcaster_test.exs -------------------------------------------------------------------------------- /test/quantum/executor_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/executor_test.exs -------------------------------------------------------------------------------- /test/quantum/job_broadcaster_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/job_broadcaster_test.exs -------------------------------------------------------------------------------- /test/quantum/job_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/job_test.exs -------------------------------------------------------------------------------- /test/quantum/node_selector_broadcaster_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/node_selector_broadcaster_test.exs -------------------------------------------------------------------------------- /test/quantum/normalizer_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/normalizer_test.exs -------------------------------------------------------------------------------- /test/quantum/run_strategy_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/run_strategy_test.exs -------------------------------------------------------------------------------- /test/quantum/scheduler_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/scheduler_test.exs -------------------------------------------------------------------------------- /test/quantum/task_registry_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum/task_registry_test.exs -------------------------------------------------------------------------------- /test/quantum_startup_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum_startup_test.exs -------------------------------------------------------------------------------- /test/quantum_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/quantum_test.exs -------------------------------------------------------------------------------- /test/support/capture_log_extend.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/support/capture_log_extend.ex -------------------------------------------------------------------------------- /test/support/test_consumer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/support/test_consumer.ex -------------------------------------------------------------------------------- /test/support/test_producer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/support/test_producer.ex -------------------------------------------------------------------------------- /test/support/test_storage.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/support/test_storage.ex -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quantum-elixir/quantum-core/HEAD/test/test_helper.exs --------------------------------------------------------------------------------