Skip to content

Next Steps

Congratulations. You now have a working Granit API with the module system, persistence, authentication, and observability configured. From here, the documentation is organized to let you dive into whichever area your project needs first.

Pick the goal closest to what you are building and follow the link to get started.

GoalStart here
Understand the module system deeplyModule System concept
Add multi-tenancyMulti-Tenancy concept
Set up notificationsNotifications reference
Import data from CSV/ExcelDataExchange reference
Generate PDF documentsTemplating reference
Add background jobsBackgroundJobs reference
Deploy to productionOperations (coming soon)

Granit has 135 packages organized into categories: Core, Security, Data, Messaging, Documents, Workflow, Observability, and more. The Reference overview shows every module with a short description of its role, so you can quickly find the right package for your use case.

Each reference page covers:

  • What the module does and when to use it
  • Installation and module dependency declaration
  • Configuration options
  • Code examples for common scenarios
  • Related modules and integration points

Curious why Granit uses CQRS, isolated DbContexts, or Channel fallbacks? The Architecture section documents the design decisions behind the framework, including the constraints that shaped them (GDPR, ISO 27001, multi-tenancy).

Understanding these decisions will help you work with the framework rather than against it, especially when you encounter patterns like separate Reader/Writer interfaces or the isolated DbContext checklist.

Granit is open-source under the Apache-2.0 license. Contributions are welcome, whether that is fixing a bug, improving documentation, or proposing a new module.

Check the Contributing section to learn about the development workflow, coding conventions, and Definition of Done that all contributions must satisfy.