Modules

FerrisKey is built as a collection of purpose-built modules. Each module owns a specific aspect of identity management and can be understood, configured, and extended independently.

Module Architecture

Each module is implemented as either:

  • A domain module within core/src/domain/ — tightly integrated with the core domain
  • A standalone library crate in libs/ — reusable and independently testable

All modules follow FerrisKey’s hexagonal architecture: business logic is pure, dependencies are injected through ports (traits), and infrastructure concerns are handled at the boundary.