Write section on application lifecycle management tools
Should be moved to Practicalli Clojure Web Services
Application lifecycle management tools configure the many components that are part of an application, such as HTTP server, persistence store access, cache management, passing configuration to routing (db connections, security, etc)
When running an application, lifecycle tools ensure components are configured and started correctly, to provide a consistent startup and clean shutdown of all components.
Some tools also have specific REPL libraries (e.g. Integrant REPL, Component REPL) to support a REPL driven development workflow. These tools can start, restart and stop components in the system or the whole system itself, without requiring the Clojure REPL process to be restarted.
https://github.com/weavejester/integrant - data focus, more involved, separate Integrant REPL project, most common for new projects with multiple components, works well with JUXT aero
Write section on application lifecycle management tools
Application lifecycle management tools configure the many components that are part of an application, such as HTTP server, persistence store access, cache management, passing configuration to routing (db connections, security, etc)
When running an application, lifecycle tools ensure components are configured and started correctly, to provide a consistent startup and clean shutdown of all components.
Some tools also have specific REPL libraries (e.g. Integrant REPL, Component REPL) to support a REPL driven development workflow. These tools can start, restart and stop components in the system or the whole system itself, without requiring the Clojure REPL process to be restarted.
Commonly used projects
https://github.com/tolitius/mount - simple, atom based, lightweight
https://github.com/weavejester/integrant - data focus, more involved, separate Integrant REPL project, most common for new projects with multiple components, works well with JUXT aero
https://github.com/stuartsierra/component - classic component approach, less used for new projects, but still many projects using this approach
Projects to evaluate
Semi-related projects
Resources
Related issues