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

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

MIT License

Follow Integrant

Integrant Web Site

Other Useful Business Software
Iris Powered By Generali - Iris puts your customer in control of their identity. Icon
Iris Powered By Generali - Iris puts your customer in control of their identity.

Increase customer and employee retention by offering Onwatch identity protection today.

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.
Learn More
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Integrant!

Additional Project Details

Registered

2025-08-20