-
-
Notifications
You must be signed in to change notification settings - Fork 211
Overview
Huy Nguyen edited this page Apr 5, 2025
·
2 revisions
Mixcore CMS is built on a modular, extensible architecture that follows modern software design principles. This document provides an overview of the system's architecture and its key components.
graph TD
A[Client Applications] --> B[API Gateway]
B --> C[Core Platform]
C --> D[Modules]
C --> E[Services]
D --> F[Database]
E --> F
The Core Platform provides the foundation for all Mixcore applications:
-
Authentication & Authorization
- JWT-based authentication
- Role-based access control
- Permission management
-
Data Access
- Entity Framework Core integration
- Repository pattern
- Caching layer
-
Dependency Injection
- Service registration
- Module discovery
- Configuration management
Modules are self-contained units of functionality:
-
Module Structure
Module/ ├── Controllers/ ├── Services/ ├── Models/ ├── Views/ ├── Migrations/ └── Module.cs
-
Module Lifecycle
- Discovery
- Registration
- Configuration
- Initialization
Services provide cross-cutting functionality:
-
Core Services
- Logging
- Caching
- Messaging
- File Storage
-
Custom Services
- Business logic
- Data processing
- External integrations
-
Request Processing
sequenceDiagram Client->>API Gateway: HTTP Request API Gateway->>Authentication: Validate Token Authentication->>Authorization: Check Permissions Authorization->>Controller: Process Request Controller->>Service: Business Logic Service->>Repository: Data Access Repository->>Database: Query/Command
-
Module Integration
sequenceDiagram Module->>Core: Register Core->>Module: Initialize Module->>Core: Register Services Core->>Module: Configure
-
Authentication Flow
- Client requests token
- Identity Server validates credentials
- JWT token issued
- Token used for subsequent requests
-
Authorization
- Role-based access control
- Permission-based authorization
- Resource-based policies
Mixcore CMS is designed for horizontal scaling:
-
Stateless Architecture
- No server-side session state
- JWT-based authentication
- Distributed caching
-
Microservices Ready
- API Gateway integration
- Service discovery
- Load balancing
graph TD
A[Load Balancer] --> B[API Gateway]
B --> C[Application Servers]
C --> D[Database Cluster]
C --> E[Cache Cluster]
C --> F[File Storage]
-
Module Development
- Follow SOLID principles
- Implement proper error handling
- Write unit tests
- Document public APIs
-
Service Development
- Use dependency injection
- Implement interfaces
- Follow single responsibility principle
- Handle exceptions appropriately
-
Database Design
- Use migrations
- Implement proper indexing
- Follow normalization rules
- Consider performance implications
- Visit our Community Forum
- Check the Troubleshooting Guide
- Contact Support for enterprise assistance