Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -308,10 +308,19 @@ SOCKET_PING_INTERVAL_MS=25000
# [default: 2]
SOCKET_MAX_MISSED_PONGS=2

# How long, in ms, a client has to ACK a queued socket message before it is
# dropped. [default: 15000]
# How long, in ms, a client has to ACK a queued socket message before the
# server re-delivers it (retry). [default: 15000]
SOCKET_MESSAGE_ACK_TIMEOUT_MS=15000

# Maximum number of unacknowledged messages retained per driver. When the
# bound is exceeded the oldest queued message is evicted. [default: 100]
SOCKET_MESSAGE_QUEUE_MAX=100

# Maximum number of automatic re-delivery attempts per queued message after
# ACK timeouts. Once exhausted the message stays queued for the next reconnect
# flush but is no longer retried automatically. [default: 5]
SOCKET_MESSAGE_MAX_RETRIES=5

# ─── Shutdown ────────────────────────────────────────────────────────────────

# How long, in ms, to wait for in-flight HTTP/Socket/DB work during SIGTERM /
Expand Down
6 changes: 6 additions & 0 deletions src/config/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ interface EnvConfig {
SOCKET_MAX_MISSED_PONGS: number;
/** Time (ms) a queued socket message waits for an ack before retry. Default: 15000 */
SOCKET_MESSAGE_ACK_TIMEOUT_MS: number;
/** Max unacknowledged messages retained per driver before oldest are evicted. Default: 100 */
SOCKET_MESSAGE_QUEUE_MAX: number;
/** Max automatic re-delivery attempts per queued message after ACK timeouts. Default: 5 */
SOCKET_MESSAGE_MAX_RETRIES: number;
/** Interval (ms) between periodic socket token expiry checks. Default: 60000 */
SOCKET_TOKEN_CHECK_INTERVAL_MS: number;
/** Grace period (ms) granted after a socket token expires. Default: 30000 */
Expand Down Expand Up @@ -298,6 +302,8 @@ const envSchema = z.object({
SOCKET_PING_TIMEOUT_MS: z.coerce.number().int().min(1000).default(20000),
SOCKET_MAX_MISSED_PONGS: z.coerce.number().int().min(1).max(10).default(2),
SOCKET_MESSAGE_ACK_TIMEOUT_MS: z.coerce.number().int().min(1000).default(15000),
SOCKET_MESSAGE_QUEUE_MAX: z.coerce.number().int().min(1).default(100),
SOCKET_MESSAGE_MAX_RETRIES: z.coerce.number().int().min(0).max(20).default(5),
SOCKET_TOKEN_CHECK_INTERVAL_MS: z.coerce.number().int().min(1000).default(60000),
SOCKET_TOKEN_GRACE_PERIOD_MS: z.coerce.number().int().min(0).default(30000),
SYNC_BATCH_SIZE_LIMIT: z.coerce.number().int().min(1).max(10000).default(500),
Expand Down
Loading