Modules

FerrisKey is a collection of modules. Each one owns a piece of identity management and can be read, configured, and extended on its own.

How a module is built

A module lives either as a domain module under core/src/domain/, close to the core, or as its own crate under libs/ when it is worth testing and versioning separately. Several are in the middle of moving from the first to the second.

Either way the shape is the same, and it follows the hexagonal architecture: the business logic is pure, its dependencies arrive through ports, and the infrastructure sits at the boundary. ferriskey-api-* crates carry the HTTP layer for the modules that have been extracted.