Introduction
comby
is a powerful application framework designed with Event Sourcing
and Command Query Responsibility Segregation (CQRS)
principles, written in Go
. It offers a robust foundation and a suite of pre-implemented domains, providing flexibility, scalability, and ease of integration.
Key Features
- Multi-Tenancy: Manage multiple tenants within a single instance seamlessly.
- Authentication/Authorization: Role-Based Access Control (RBAC) allows tenants to manage their own groups securely, ensuring strict tenant isolation.
- User Management: Users can register and log in effortlessly.
- Group Management: Create groups, assign rights, and manage user memberships.
- Identity Management: An account can have multiple identities within a tenant, and identities can belong to multiple groups.
- User Invitations: Invite users to a tenant via email.
- Asset Management: Upload and manage images and files with ease.
- Webhook Management: Trigger external requests based on specific events.
- Extensible Web Router: A highly extensible default web router, with OpenAPI 3.1 specification generation.
- Event Broadcasting: Events are shared with other instances via brokers, allowing command delegation and replicated instances
- External Event Processing: External events that are not related to the application can be processed
- Admin Dashboard: A comprehensive dashboard for monitoring state, events, commands, data, and tenant management.
Advantages of Event Sourcing and CQRS
- Automatic Versioning: Every change is versioned automatically, enabling easy rollback and historical data analysis.
- Auditing and Logs: Provides an immutable log of all actions, enhancing security and compliance.
- No Migrations: Schema migrations are unnecessary, simplifying deployments and updates.
- Scalability: CQRS separates read and write operations, optimizing performance and scalability.
- Flexibility: Interfaces in Go allow custom implementations for store and broker integrations, ensuring compatibility with various systems.
Core Flexibility with "Facade"
The core of comby, known as "Facade," can be used independently to leverage pure ES/CQRS without the existing domains. This flexibility allows developers to register only the domains they need or even create entirely new domains, making comby adaptable to specific project requirements.
Why Choose comby Over Traditional Frameworks
- Enhanced Flexibility: Unlike frameworks like Kafka or Spark, comby offers more flexibility in managing multi-tenancy, authentication, and domain-specific needs.
- Integrated Management: Comprehensive user, group, and asset management capabilities built-in.
- Simplified Development: Pre-implemented domains and high-extensible architecture reduce development time and complexity.
- Seamless Integration: Customizable interfaces and support for various brokers and stores ensure smooth integration with existing systems.
Conclusion
comby stands out as a versatile and powerful framework, providing all the tools needed for modern application development. Its focus on Event Sourcing and CQRS ensures robust data management and scalability, while its flexibility and ease of integration make it an ideal choice for a wide range of applications. Explore the future of application frameworks with comby.