All Use Cases the main use cases that we have implemented across the product (so that you do not have to implement them yourselves)
- REST API Design Guidelines how REST API's should be designed
- REST API Framework how REST API's are implemented
- Modularity is how we build modules that can be scaled-out later as the product grows
- Recording/Logging/etc how we do crash reporting, logging, auditing, and capture usage metrics
- Configuration Management how we manage configuration in the source code at design-time and runtime
- Domain Driven Design how to design your aggregates, and domains
- Dependency Injection how you implement DI
- Persistence how you design your repository layer, and promote domain events
- Eventing how we implement Eventing and enable Event Driven Architecture
- Ports and Adapters how we keep infrastructure components at arm's length, and testable, and how we integrate with any 3rd party system
- Authentication and Authorization how we authenticate and authorize users
- Email Delivery how we send emails and deliver them asynchronously and reliably
- Backend for Frontend the BEFFE web server that is tailored for a web UI, and brokers secure access to the backend
- Feature Flagging how we enable and disable features at runtime
- Multi-Tenancy how we support multiple tenants in our system (both logical and physical infrastructure)
- Developer Tooling all the tooling that is included in this codebase to help developers use this codebase effectively, and consistently
- User Lifecycle how are users managed on the platform, and the relationship to their organizations
- Billing Integration how the integration between the billing management and the product works to enable self-serve plan management