Immutable top-level configuration for an cc.otavia.core.system.ActorSystem.
Built once via OtaviaConfigBuilder and passed to the actor system at creation time. All config groups are immutable case classes with sensible defaults.
Configuration values follow a priority chain: explicit builder value > system property (-D) > hardcoded default.
Example usage:
val system = ActorSystem("my-app") { builder =>
builder.actorThreadPoolSize(4)
.pageSize(8)
.ioRatio(60)
.withModuleConfig(SslConfig(cacheBufferSize = 32768))
}
// Access config from anywhere
system.config.buffer.pageSize
system.config.scheduler.ioRatio
Value parameters
- buffer
-
Buffer allocation configuration: page size, allocator cache sizes.
- channel
-
Channel defaults: connect timeout, write watermarks, inflight limits.
- name
-
Name of the actor system. Used for logging and identification. Default is "ActorSystem:
". - priority
-
Scheduling priority thresholds: mailbox sizes that trigger high priority.
- reactor
-
NIO reactor configuration: worker count, selector tuning.
- scheduler
-
Actor scheduling configuration: IO ratio, time budgets, work stealing thresholds.
- spinLock
-
Spin lock tuning: spin/yield/park thresholds.
- system
-
System-level configuration: thread pool sizing, memory/system monitors, GC behavior.
- timer
-
Hashed wheel timer configuration: tick duration, wheel size.
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass Any