Files
CBDDC/docs/deployment-modes.md

83 lines
1.9 KiB
Markdown
Executable File

# CBDDC Deployment Mode
ZB.MOM.WW.CBDDC.Hosting supports a single deployment mode.
## Single-Cluster Mode
**Best for:**
- Dedicated database servers
- Simple deployments
- Development/testing environments
- Small-to-medium applications
### Architecture
```
┌─────────────────────┐
│ ASP.NET Server │
│ │
│ ┌───────────────┐ │
│ │ CBDDC │ │
│ │ (1 cluster) │ │
│ └───────────────┘ │
│ │ │
│ [TCP:5001] │
└─────────────────────┘
```
### Configuration
```csharp
builder.Services.AddCBDDCHostingSingleCluster(options =>
{
options.NodeId = "server-01";
options.TcpPort = 5001;
});
```
### Characteristics
- One database per server instance
- Simple configuration
- Easy to scale horizontally (multiple servers = multiple databases)
- No port collision issues
- Recommended for most use cases
## Server Behavior
Servers use respond-only operation:
- Accept incoming TCP sync connections
- Respond to sync requests
- Serve data to clients
- Maintain persistence
- Do not initiate outbound sync
- Do not perform UDP discovery
- Do not connect to other servers automatically
## Persistence Layer Compatibility
Single-cluster mode works with all persistence providers:
| Provider | Support | Notes |
|----------|---------|-------|
| SQLite (Direct) | Yes | One DB file per cluster |
| EF Core | Yes | Flexible DB options |
| PostgreSQL | Yes | Best for production |
## Scaling Strategy
### Horizontal Scaling
```
Load Balancer
├─> Server 1 (Cluster A) [PostgreSQL A]
├─> Server 2 (Cluster B) [PostgreSQL B]
└─> Server 3 (Cluster C) [PostgreSQL C]
```
## Recommendation
Use single-cluster mode for ASP.NET hosting. It is simpler, robust, and straightforward to scale.