Integrant is a minimalistic micro-framework for building applications following a data-driven architecture. It lets you define system components declaratively as configuration data and handles lifecycle actions (init, halt, resume) in dependency order, serving as a modern alternative to Component or Mount. Integrant was built as a reaction to fix some perceived weaknesses with Component. In Component, systems are created programmatically. Constructor functions are used to build records, which are then assembled into systems. In Integrant, systems are created from a configuration data structure, typically loaded from an edn resource. The architecture of the application is defined through data, rather than code.
Features
- Defines application architecture via plain Clojure data (maps)
- Automatically orders initialization and halting tasks by dependencies using multimethods
- Supports resuming with reuse of existing resources when possible (resume)
- Provides tools to construct (init), suspend (suspend!), and tear down systems in reverse order
- Allows extraction of dependency graphs and deep merging of config maps (dependency-graph, converge)
- Compatible with both Clojure and ClojureScript environments
Categories
LibrariesLicense
MIT LicenseFollow Integrant
Other Useful Business Software
Iris Powered By Generali - Iris puts your customer in control of their identity.
Iris Identity Protection API sends identity monitoring and alerts data into your existing digital environment – an ideal solution for businesses that are looking to offer their customers identity protection services without having to build a new product or app from scratch.
Rate This Project
Login To Rate This Project
User Reviews
Be the first to post a review of Integrant!