docs: Align documentation with true microservices architecture
Transform all documentation from modular monolith to true microservices
architecture where core services are independently deployable.
Key Changes:
- Core Kernel: Infrastructure only (no business logic)
- Core Services: Auth, Identity, Authz, Audit as separate microservices
- Each service has own entry point (cmd/{service}/)
- Each service has own gRPC server and database schema
- Services register with Consul for service discovery
- API Gateway: Moved from Epic 8 to Epic 1 as core infrastructure
- Single entry point for all external traffic
- Handles routing, JWT validation, rate limiting, CORS
- Service Discovery: Consul as primary mechanism (ADR-0033)
- Database Pattern: Per-service connections with schema isolation
Documentation Updates:
- Updated all 9 architecture documents
- Updated 4 ADRs and created 2 new ADRs (API Gateway, Service Discovery)
- Rewrote Epic 1: Core Kernel & Infrastructure (infrastructure only)
- Rewrote Epic 2: Core Services (Auth, Identity, Authz, Audit as services)
- Updated Epic 3-8 stories for service architecture
- Updated plan.md, playbook.md, requirements.md, index.md
- Updated all epic READMEs and story files
New ADRs:
- ADR-0032: API Gateway Strategy
- ADR-0033: Service Discovery Implementation (Consul)
New Stories:
- Epic 1.7: Service Client Interfaces
- Epic 1.8: API Gateway Implementation
This commit is contained in:
@@ -4,13 +4,16 @@ Welcome to the Go Platform documentation! This is a plugin-friendly SaaS/Enterpr
|
||||
|
||||
## What is Go Platform?
|
||||
|
||||
Go Platform is a modular, extensible platform designed to support multiple business domains through a plugin architecture. It provides:
|
||||
Go Platform is a microservices platform designed to support multiple business domains through independent, deployable services. It provides:
|
||||
|
||||
- **Core Kernel**: Foundation services including authentication, authorization, configuration, logging, and observability
|
||||
- **Module Framework**: Plugin system for extending functionality
|
||||
- **Core Kernel**: Infrastructure only (configuration, logging, DI, health, metrics, observability) - no business logic
|
||||
- **Core Services**: Independent microservices (Auth, Identity, Authz, Audit) with their own entry points and databases
|
||||
- **API Gateway**: Single entry point for all external traffic, handles routing, authentication, and rate limiting
|
||||
- **Service Discovery**: Consul-based service registry for dynamic service discovery
|
||||
- **Module Framework**: Feature services (Blog, Billing, etc.) as independent services
|
||||
- **Infrastructure Adapters**: Support for databases, caching, event buses, and job scheduling
|
||||
- **Security-by-Design**: Built-in JWT authentication, RBAC/ABAC authorization, and audit logging
|
||||
- **Observability**: OpenTelemetry integration for tracing, metrics, and logging
|
||||
- **Observability**: OpenTelemetry integration for distributed tracing, metrics, and logging across services
|
||||
|
||||
## Documentation Structure
|
||||
|
||||
@@ -63,11 +66,17 @@ Detailed task definitions for each epic are available in the [Stories section](s
|
||||
|
||||
## Key Principles
|
||||
|
||||
- **Hexagonal Architecture**: Clear separation between core and plugins
|
||||
- **Microservices Architecture**: Each module is an independent service from day one
|
||||
- **Plugin-First Design**: Extensible architecture supporting static and dynamic modules
|
||||
- **microMicroservices Architecture**: Each service is independently deployable from day one
|
||||
- Core Kernel: Infrastructure only (config, logger, DI, health, metrics)
|
||||
- Core Services: Auth, Identity, Authz, Audit as separate services
|
||||
- Feature Services: Blog, Billing, etc. as independent services
|
||||
- **API Gateway**: Single entry point for all external traffic
|
||||
- **Service Discovery**: Consul-based service registry for dynamic service location
|
||||
- **Service Clients**: All inter-service communication via gRPC/HTTP through service clients
|
||||
- **Database Isolation**: Each service has its own database connection pool and schema
|
||||
- **Hexagonal Architecture**: Clear separation between interfaces and implementations
|
||||
- **Security-by-Design**: Built-in authentication, authorization, and audit capabilities
|
||||
- **Observability**: Comprehensive logging, metrics, and tracing
|
||||
- **Observability**: Comprehensive distributed tracing, metrics, and logging across services
|
||||
- **API-First**: OpenAPI/GraphQL schema generation
|
||||
|
||||
## Contributing
|
||||
|
||||
Reference in New Issue
Block a user