Concepts
This section explains the foundational concepts that inform how Granit is designed and how its modules interact.
Understanding these concepts will help you make informed decisions about which modules to use and how to configure them for your application.
Core architecture
Section titled “Core architecture”- Module System —
[DependsOn], topological sort, lifecycle hooks - Dependency Injection — Granit DI conventions, Options pattern
- Configuration — configuration sources, layering, typed options
- Bundles — meta-packages and the fluent
GranitBuilderAPI
Data and infrastructure
Section titled “Data and infrastructure”- Persistence — isolated DbContext, interceptors, conventions
- Multi-Tenancy — 3 isolation strategies, soft dependency
- Messaging — Wolverine, Channel fallback, transactional outbox
- Wolverine Optionality — what works without Wolverine
Security and compliance
Section titled “Security and compliance”- Security Model — authentication, authorization, encryption
- Compliance — GDPR, ISO 27001 enforcement
Architecture decisions
Section titled “Architecture decisions”- Modular Monolith vs Microservices — when to stay monolith, when to extract