# 
        Configuration
    
        # 
        Reference
    
        # 
        Configuration Overview
    
The Nekuti Matching Engine is configured through a series of feature blocks, each controlling specific aspects of the engine's behavior. Most settings are hard-coded as part of each client's optimized software package. Settings can be changed or exposed as runtime configuration parameters on request. Below is a comprehensive reference of all configuration options.
        # 
        Environment Variables
    
The following environment variables can be used to control specific engine behaviors:
        # 
        THREAD_MODEL
    
Controls the engine's threading behavior.
- Values: dev-laptop|production
- Default: production
- Note: The dev-laptopsetting is for testing purposes only- production: Runs multi-threaded and optimizes for latency by utilizing 4 CPU cores
- dev-laptop: Runs single-threaded without CPU core optimization
 
        # 
        DISABLE_PERSISTENCE
    
Controls persistence behavior of the engine.
- Values: yes|no
- Default: no
- Note: Setting to yesis for testing purposes only- Starts engine with no persisted state
- Prevents command persistence and snapshot generation
- Enables runtime exchange data wiping without process restart
 
        # 
        ABANDONMENT_TIMEOUT_MS
    
Configures recovery behavior for abandoned command files after hard exits.
- Values: Time in milliseconds
- Default: Not set
- Enables recovery of command files from failed instances
- Waits specified duration and verifies no writes occurred before takeover
- See Multiple Instance Protection and Recovery for detailed documentation
        # 
        Core Features
    
        # 
        Clock
    
Controls the temporal granularity of the system.
Clock[tickFrequency=PT0.01S]- tickFrequency: Maximum duration between clock tick events (Shown in ISO-8601 duration format)
        # 
        Engine
    
Defines core engine behavior parameters.
Engine[commandQueueCapacity=1000000]- commandQueueCapacity: Maximum number of pending commands before backpressure is applied- When queue is full, REST calls will block until capacity becomes available
 
        # 
        Persistence
    
Controls how the engine persists data.
Persistence(
    path=persistence/,
    archivePath=persistence/archived,
    commandFileBaseName=commandLog,
    fileSystem=NativeFilesystem,
    incompatibleCommandFilePolicy=FatalError
)- path: Directory for active persistence files
- archivePath: Directory for archived command and snapshot files
- commandFileBaseName: Base name for command log files
- fileSystem: Filesystem implementation to use
- incompatibleCommandFilePolicy: How to handle incompatible command files
        # 
        CommandFileReading
    
CommandFileReading[
    preferredReadChunkSize=524288,
    shouldDropSubscriptionsFromPersistedState=true
]- preferredReadChunkSize: Optimal chunk size for file reads (in bytes)
- shouldDropSubscriptionsFromPersistedState: Whether to maintain subscriptions across restarts. Always true
        # 
        CommandFileWriting
    
CommandFileWriting[
    preferredWriteChunkSize=2097152,
    fileMaxSize=1073741824
]- preferredWriteChunkSize: Optimal chunk size for file writes (in bytes)
- fileMaxSize: Maximum size of command files before rolling over (in bytes)
        # 
        Data Management
    
        # 
        DefaultMessageStore
    
DefaultMessageStore[
    maxHoldingPeriod=PT24H,
    purgeInterval=PT21M39.827S
]The default message store is created only when the engine starts from zero with nothing persisted.
- maxHoldingPeriod: How long messages are retained
- purgeInterval: Frequency of message purging operations
        # 
        OrderPurging
    
OrderPurging[
    orderPurgeInterval=PT9M59S,
    orderPurgeAge=PT10M
]- orderPurgeInterval: Frequency of order purging operations
- orderPurgeAge: Age threshold for purging final-state orders- Affects orders in filled, canceled, or expired states
- Purged orders will return UnknownOrderIdorUnknownClOrdIdon amendment attempts
 
        # 
        System Optimization
    
        # 
        PreventRuntimeAllocations
    
PreventRuntimeAllocations[]Ensures fixed heap size by asserting starting and maximum heap sizes are identical.
        # 
        ReadModels
    
ReadModels[includeOrders=true]- includeOrders: Enables historical order querying- Required for querying final-state orders
- Orders become unqueryable immediately upon reaching final state if disabled
 
        # 
        SnapshotCommandGeneration
    
SnapshotCommandGeneration[snapshotInterval=PT8M7.349S]- snapshotInterval: Frequency of snapshot generation
        # 
        Logging
    
Logging[level=info, writingThread=true]- level: Log level (info)
- writingThread: Whether to use a background thread for log output
        # 
        System Constants
    
These values are hardcoded and cannot be currently be configured. Future updates may include the ability to modify these settings:
- Market Order Slippage Limit: 5%
- Market orders will not fill beyond 5% from best bid/ask
- Order is partially filled and then canceled
 
- Dense Levels: 1 million
- Innermost price levels kept in dense array
- Optimizes performance at cost of memory usage