Skip to content

Configuration Reference

Complete reference of all configuration options:

namastack:
  outbox:
    enabled: true                              # Enable outbox functionality (default: true)

    # Polling Configuration
    poll-interval: 2000                        # Milliseconds between polling cycles (default: 2000)
    rebalance-interval: 10000                  # Milliseconds between rebalance checks (default: 10000)
    batch-size: 10                             # Records per poll cycle (default: 10)

    # Processing Configuration
    processing:
      stop-on-first-failure: true              # Stop processing on first failure (default: true)
      publish-after-save: true                 # Publish events to listeners after saving (default: true)
      delete-completed-records: false          # Delete records after completion (default: false)
      executor-core-pool-size: 4               # Core threads for processing (default: 4, platform threads)
      executor-max-pool-size: 8                # Maximum threads for processing (default: 8, platform threads)
      executor-concurrency-limit: -1           # Concurrency limit for virtual threads (default: -1 unlimited)

    # Event Multicaster Configuration
    multicaster:
      enabled: true                            # Enable @OutboxEvent interception (default: true)

    # Instance Coordination Configuration
    instance:
      graceful-shutdown-timeout-seconds: 0     # Graceful shutdown propagation window (default: 0)
      stale-instance-timeout-seconds: 30       # When an instance is considered stale and removed (default: 30)
      heartbeat-interval-seconds: 5            # How often each instance sends a heartbeat (default: 5)
      rebalance-interval: 10000                # How often partitions are recalculated (default: 10000)

    jdbc:
      table-prefix: ""                         # Prefix for table names (default: empty)
      schema-name: null                        # Database schema name (default: null, uses default schema)
      schema-initialization:
        enabled: true                          # Auto-create tables on startup (default: true)

    # Retry Configuration
    retry:
      policy: exponential                      # Retry policy: fixed|linear|exponential (default: exponential)
      max-retries: 3                           # Maximum retry attempts (default: 3)

      # Exception Filtering (Since 1.0.0)
      include-exceptions:                      # Only retry these exceptions (optional)
        - java.net.SocketTimeoutException
        - org.springframework.web.client.ResourceAccessException
      exclude-exceptions:                      # Never retry these exceptions (optional)
        - java.lang.IllegalArgumentException
        - javax.validation.ValidationException

      # Fixed Delay Policy
      fixed:
        delay: 5000                            # Delay in milliseconds (default: 5000)

      # Linear Backoff Policy
      linear:
        initial-delay: 2000                    # Initial delay in milliseconds (default: 2000)
        increment: 2000                        # Increment per retry in milliseconds (default: 2000)
        max-delay: 60000                       # Maximum delay cap in milliseconds (default: 60000)

      # Exponential Backoff Policy
      exponential:
        initial-delay: 1000                    # Initial delay in milliseconds (default: 1000)
        max-delay: 60000                       # Maximum delay cap in milliseconds (default: 60000)
        multiplier: 2.0                        # Backoff multiplier (default: 2.0)

      # Jitter Configuration (can be used with any policy)
      jitter: 0                                # Max random jitter in milliseconds (default: 0)

Disabling Outbox

To completely disable outbox functionality:

namastack:
  outbox:
    enabled: false

This prevents all outbox beans from being created, useful for:

  • Running tests without outbox processing
  • Temporarily disabling outbox in specific environments
  • Conditional feature flags