feat: microservice architecture
This commit is contained in:
@@ -264,45 +264,54 @@ graph LR
|
||||
|
||||
## Module Communication
|
||||
|
||||
Modules communicate through well-defined interfaces provided by the core platform.
|
||||
Modules (services) communicate through service client interfaces. All inter-service communication uses gRPC (primary) or HTTP (fallback).
|
||||
|
||||
### Communication Patterns
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "Communication Patterns"
|
||||
Direct[Direct Service Calls<br/>via DI]
|
||||
Events[Event Bus<br/>Publish/Subscribe]
|
||||
Shared[Shared Interfaces<br/>Core Services]
|
||||
ServiceClients[Service Clients<br/>gRPC/HTTP]
|
||||
Events[Event Bus<br/>Kafka]
|
||||
Shared[Shared Infrastructure<br/>Redis, PostgreSQL]
|
||||
end
|
||||
|
||||
subgraph "Module A"
|
||||
AService[Service A]
|
||||
AHandler[Handler A]
|
||||
subgraph "Blog Service"
|
||||
BlogService[Blog Service]
|
||||
BlogHandler[Blog Handler]
|
||||
end
|
||||
|
||||
subgraph "Service Clients"
|
||||
AuthClient[Auth Service Client]
|
||||
IdentityClient[Identity Service Client]
|
||||
AuthzClient[Authz Service Client]
|
||||
end
|
||||
|
||||
subgraph "Core Services"
|
||||
EventBus[Event Bus]
|
||||
AuthService[Auth Service]
|
||||
CacheService[Cache Service]
|
||||
AuthService[Auth Service<br/>:8081]
|
||||
IdentityService[Identity Service<br/>:8082]
|
||||
end
|
||||
|
||||
subgraph "Module B"
|
||||
BService[Service B]
|
||||
BHandler[Handler B]
|
||||
subgraph "Analytics Service"
|
||||
AnalyticsService[Analytics Service]
|
||||
end
|
||||
|
||||
AHandler --> AService
|
||||
AService --> AuthService
|
||||
AService --> CacheService
|
||||
AService -->|Publish| EventBus
|
||||
EventBus -->|Subscribe| BService
|
||||
BService --> AuthService
|
||||
BHandler --> BService
|
||||
BlogHandler --> BlogService
|
||||
BlogService -->|gRPC| AuthClient
|
||||
BlogService -->|gRPC| IdentityClient
|
||||
BlogService -->|gRPC| AuthzClient
|
||||
BlogService -->|Publish| EventBus
|
||||
EventBus -->|Subscribe| AnalyticsService
|
||||
|
||||
AuthClient --> AuthService
|
||||
IdentityClient --> IdentityService
|
||||
AuthzClient --> IdentityService
|
||||
|
||||
style EventBus fill:#4a90e2,stroke:#2e5c8a,stroke-width:3px,color:#fff
|
||||
style AService fill:#7b68ee,stroke:#5a4fcf,stroke-width:2px,color:#fff
|
||||
style BService fill:#7b68ee,stroke:#5a4fcf,stroke-width:2px,color:#fff
|
||||
style BlogService fill:#7b68ee,stroke:#5a4fcf,stroke-width:2px,color:#fff
|
||||
style AnalyticsService fill:#7b68ee,stroke:#5a4fcf,stroke-width:2px,color:#fff
|
||||
style ServiceClients fill:#50c878,stroke:#2e7d4e,stroke-width:2px,color:#fff
|
||||
```
|
||||
|
||||
### Event-Driven Communication
|
||||
@@ -412,25 +421,30 @@ graph TB
|
||||
PostEntity[Post Entity]
|
||||
end
|
||||
|
||||
subgraph "Core Services Used"
|
||||
AuthService[Auth Service]
|
||||
AuthzService[Authorization Service]
|
||||
EventBus[Event Bus]
|
||||
AuditService[Audit Service]
|
||||
CacheService[Cache Service]
|
||||
subgraph "Service Clients"
|
||||
AuthClient[Auth Service Client<br/>gRPC]
|
||||
AuthzClient[Authz Service Client<br/>gRPC]
|
||||
IdentityClient[Identity Service Client<br/>gRPC]
|
||||
AuditClient[Audit Service Client<br/>gRPC]
|
||||
end
|
||||
|
||||
subgraph "Core Services"
|
||||
EventBus[Event Bus<br/>Kafka]
|
||||
CacheService[Cache Service<br/>Redis]
|
||||
end
|
||||
|
||||
subgraph "Database"
|
||||
PostsTable[(blog_posts)]
|
||||
end
|
||||
|
||||
BlogHandler --> AuthService
|
||||
BlogHandler --> AuthzService
|
||||
BlogHandler --> BlogService
|
||||
|
||||
BlogService -->|gRPC| AuthClient
|
||||
BlogService -->|gRPC| AuthzClient
|
||||
BlogService -->|gRPC| IdentityClient
|
||||
BlogService -->|gRPC| AuditClient
|
||||
BlogService --> PostRepo
|
||||
BlogService --> EventBus
|
||||
BlogService --> AuditService
|
||||
BlogService --> CacheService
|
||||
|
||||
PostRepo --> PostsTable
|
||||
@@ -454,9 +468,15 @@ graph LR
|
||||
DB[(Database)]
|
||||
end
|
||||
|
||||
subgraph "Service Clients"
|
||||
AuthClient[Auth Service Client]
|
||||
IdentityClient[Identity Service Client]
|
||||
AuthzClient[Authz Service Client]
|
||||
end
|
||||
|
||||
subgraph "Side Effects"
|
||||
EventBus[Event Bus]
|
||||
Audit[Audit Log]
|
||||
AuditClient[Audit Service Client]
|
||||
Cache[Cache]
|
||||
end
|
||||
|
||||
@@ -467,12 +487,16 @@ graph LR
|
||||
Service --> Repo
|
||||
Repo --> DB
|
||||
|
||||
Service -->|gRPC| AuthClient
|
||||
Service -->|gRPC| IdentityClient
|
||||
Service -->|gRPC| AuthzClient
|
||||
Service -->|gRPC| AuditClient
|
||||
Service --> EventBus
|
||||
Service --> Audit
|
||||
Service --> Cache
|
||||
|
||||
style Request fill:#4a90e2,stroke:#2e5c8a,stroke-width:2px,color:#fff
|
||||
style Service fill:#7b68ee,stroke:#5a4fcf,stroke-width:2px,color:#fff
|
||||
style ServiceClients fill:#50c878,stroke:#2e7d4e,stroke-width:2px,color:#fff
|
||||
```
|
||||
|
||||
## Module Registration Flow
|
||||
|
||||
Reference in New Issue
Block a user