Configuration Reference

Complete configuration reference for Korvet.

Default Configuration

The following shows the default application.yml configuration file:

# Korvet Server Configuration

spring:
  application:
    name: korvet

# Korvet Configuration
korvet:
  # Redis Configuration
  redis:
    host: localhost
    port: 6379
    # database: 0
    # username: default
    # password: changeit
    # client-name: korvet
    # timeout: 60s
    # connect-timeout: 10s
    # ssl:
    #   enabled: false
    pool:
      max-active: 10
      max-idle: 10
      min-idle: 2
      max-wait: -1ms
      time-between-eviction-runs: 60s

  # Mapper Configuration
  mapper:
    offset:
      # Number of bits for sequence number in offset encoding (1-16)
      # Default: 10 (supports 1,023 messages/ms, ~1M+ messages/second)
      # Lower values reduce offset delta, higher values support more messages/ms
      sequence-bits: 10

  # Kafka Protocol Server Configuration
  server:
    # Network configuration
    host: 0.0.0.0
    port: 9092

    # Broker configuration
    broker-id: 0
    keyspace: korvet  # Redis keyspace prefix for all keys (topics, consumer groups, etc.)
    # advertised-host: localhost  # If not set, uses 'host'
    # advertised-port: 9092       # If not set, uses 'port'

    # Thread pool configuration
    boss-threads: 1
    worker-threads: 0  # 0 = use Netty default (2 * CPU cores)

    # Request size limits
    max-request-size: 104857600  # 100 MB

    # TLS/SSL configuration (optional)
    tls:
      enabled: false
      # cert-file: /path/to/server.crt
      # key-file: /path/to/server.key
      # key-password: changeit
      # trust-cert-file: /path/to/ca.crt
      # client-auth-required: false

# Spring Boot Actuator Configuration
management:
  endpoints:
    web:
      exposure:
        include: health,info,prometheus,metrics
  endpoint:
    health:
      show-details: always
  prometheus:
    metrics:
      export:
        enabled: true

# Logging Configuration
logging:
  level:
    root: INFO
    com.redis.korvet: DEBUG

Environment Variables

All configuration can be set via environment variables using Spring Boot’s relaxed binding:

# Server
export KORVET_SERVER_HOST=0.0.0.0
export KORVET_SERVER_PORT=9092
export KORVET_SERVER_BROKER_ID=0
export KORVET_SERVER_AUTO_CREATE_TOPICS=true
export KORVET_SERVER_DEFAULT_PARTITIONS=1

# Redis
export KORVET_REDIS_HOST=localhost
export KORVET_REDIS_PORT=6379
export KORVET_REDIS_DATABASE=0
export KORVET_REDIS_USERNAME=default
export KORVET_REDIS_PASSWORD=secret
export KORVET_REDIS_TIMEOUT=60s

# Mapper
export KORVET_MAPPER_OFFSET_SEQUENCE_BITS=10

# TLS
export KORVET_SERVER_TLS_ENABLED=true
export KORVET_SERVER_TLS_CERT_FILE=/path/to/server.crt
export KORVET_SERVER_TLS_KEY_FILE=/path/to/server.key
export KORVET_SERVER_TLS_KEY_PASSWORD=secret

# Logging
export LOGGING_LEVEL_COM_REDIS_KORVET=DEBUG