You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Complete reference for all Surgewave broker configuration options.
Configuration File
Surgewave uses appsettings.json for configuration:
{
"Surgewave": {
// Configuration options here
}
}
Core Settings
Setting
Type
Default
Description
BrokerId
int
1
Unique broker identifier
Host
string
"localhost"
Bind address
Port
int
9092
Kafka protocol port
GrpcPort
int
9093
gRPC API port
DataDirectory
string
"./data"
Data storage path
LogDirectory
string
"./logs"
Log files path
Network Settings
Setting
Type
Default
Description
EnableDualMode
bool
true
Enable dual-stack IPv4+IPv6 binding (see below)
MaxConnectionsPerIp
int
100
Max connections per IP
SocketSendBufferBytes
int
102400
Socket send buffer (bytes)
SocketReceiveBufferBytes
int
102400
Socket receive buffer (bytes)
MaxRequestSize
int
104857600
Max request size (100MB)
IPv4/IPv6 Binding
When Host is "localhost", the binding behavior depends on EnableDualMode:
EnableDualMode
Bind Address
Metadata Host
Accepts
true (default)
[::]:port (IPv6Any, DualMode)
localhost
IPv4 + IPv6
false
127.0.0.1:port
127.0.0.1
IPv4 only
When EnableDualMode is false, the broker automatically advertises 127.0.0.1 in metadata responses instead of localhost. This prevents clients (e.g., librdkafka) from resolving localhost to ::1 (IPv6) and failing to connect.
When to disable dual-mode:
Environments without IPv6 support (some Docker/CI configurations)
When IPv6 DNS resolution causes connection timeouts
Windows environments where dual-stack sockets behave unexpectedly
Ring buffer size (64 MB). Supports units: 1MB, 256MB, 1GB
Ephemeral topics store messages in a fixed-size ring buffer. When full, oldest messages are evicted. Data does not survive broker restarts. Ideal for live dashboards, sensor telemetry, and cache invalidation.