phoenixframework/flame
67.9
Adequate · 3 October 2026
3k
lines of production code
Elixir
primary language
2
measurements over time
What this system is
FLAME is an Elixir library that enables the execution of code closures on ephemeral remote nodes, supporting both local development and production scaling via Fly.io. It manages a pool of remote runners with automatic lifecycle handling, including dynamic scaling, graceful shutdown, and code synchronization. The system provides a pluggable backend architecture, allowing users to swap infrastructure providers while maintaining a consistent API for remote task execution.
Features
Introduction of pool lifecycle management and cleanup mechanisms
The pool subsystem now includes a dedicated Cleaner GenServer to track and remove temporary file paths upon shutdown, ensuring no residual artifacts remain. Additionally, the pool supervisor structure has been formalized to explicitly manage child processes, including a Task Supervisor, two Dynamic Supervisors (for runners and terminators), and the Cleaner, all orchestrated under a single supervisor strategy to ensure robust lifecycle handling.
lib/flame/pool · high confidence
Removals
Removal of distributed Fly.io backend and parent monitoring components
The distributed backend infrastructure for Fly.io has been removed from the library. This change deletes the \Dragonfly.Backend\ protocol, the \Dragonfly.Backend.ParentMonitor\ GenServer (which handled node connections and parent process monitoring), the \Dragonfly.FlyBackend\ implementation (which managed remote runner provisioning via the Fly API), and the associated \Dragonfly.FlyBackend.Supervisor\. Consequently, the library no longer supports running image processing tasks on remote Fly.io machines via distributed Erlang nodes.
lib/dragonfly · high confidence
Behavioural changes
Introduce FLAME backend behavior and Fly.io integration
The library now defines a \FLAME.Backend\ behavior, allowing users to swap the underlying infrastructure provider. A new \FLAME.FlyBackend\ implementation is included to provision remote compute resources on Fly.io machines, supporting configuration for CPU, memory, GPUs, and environment variables. The previous \Dragonfly.LocalBackend\ has been renamed to \FLAME.LocalBackend\ and updated to implement the new behavior, ensuring local development and testing continue to work seamlessly with the new API.
lib/flame · high confidence
Introduce FLAME.Terminator.Supervisor with configurable shutdown timeout
Added a new supervisor module that manages the FLAME.Terminator worker and a DynamicSupervisor for child placement. The supervisor now accepts a :shutdown\_timeout option (defaulting to 30 seconds) which is passed directly to the FLAME.Terminator worker, allowing users to control how long the system waits for graceful termination before forcing shutdown.
lib/flame/terminator · high confidence
Library renamed from Dragonfly to FLAME with new termination and pool architecture
The library has been renamed from Dragonfly to FLAME, introducing a new architecture for executing code on ephemeral remote nodes. The main entry point is now \FLAME\, which provides \call/3\ and \place\_child/3\ to execute closures on remote runners managed by \FLAME.Pool\. A new \FLAME.Terminator\ supervisor handles graceful shutdown of remote nodes with a configurable \shutdown\_timeout\ (defaulting to 30 seconds), replacing the previous \Dragonfly.TaskSupervisor\. The application module is now \FLAME.Application\, and the library supports backends like \FLAME.LocalBackend\ and \FLAME.FlyBackend\ for production scaling.
lib · high confidence
Test coverage
Added test support utilities for code sync and trackable node spawning; Added tests for code sync, runner pool, and queue logic; removed legacy Dragonfly tests; Added tests for the JSON parser module.
Dependencies
Rebrand to Flame and update dependencies
The project has been renamed from Dragonfly to Flame, with the application ID changed to :flame and the Elixir requirement bumped to \~\> 1.15. The HTTP client dependency has switched from :req to optional dependencies on :jason and :castore, while :ex\_doc has been added for documentation generation. The lock file reflects these changes, removing :finch, :mint, and :req while adding :ex\_doc, :earmark\_parser, :makeup, :makeup\_elixir, and :makeup\_erlang, and updating :castore to version 1.0.7.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 62 → 68 (+5.9)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 39 → 50 (+11.1)
- Readiness 67 → 69 (+2.4)
- Security 100 → 100 (+0.0)
New (1)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
phoenixframework/flame was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 2b124f3ffdede8c1f125ce36b237bef1c50940a3 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-8fe32cd45d00.