lazyModules

fun KoinApplication.lazyModules(vararg moduleList: Lazy<Module>, dispatcher: CoroutineDispatcher? = null)

Load lazy modules asynchronously in parallel background coroutines.

Each lazy module is loaded in its own coroutine job, enabling true parallel initialization and significantly reducing startup time when multiple modules are used.

Lazy are not resolved directly until their job executes, improving warmup time. The coroutinesEngine() is automatically set up if needed.

Parameters

moduleList

Vararg list of lazy modules to load in parallel

dispatcher

Optional coroutine dispatcher (defaults to platform default)

Example:

startKoin {
lazyModules(
lazyModule { /* module 1 */},
lazyModule { /* module 2 */}
)
}

fun KoinApplication.lazyModules(moduleList: List<Lazy<Module>>, dispatcher: CoroutineDispatcher? = null)

Load lazy modules asynchronously in parallel background coroutines.

Each lazy module is loaded in its own coroutine job, enabling true parallel initialization and significantly reducing startup time when multiple modules are used.

Lazy are not resolved directly until their job executes, improving warmup time. The coroutinesEngine() is automatically set up if needed.

Parameters

moduleList

List of lazy modules to load in parallel

dispatcher

Optional coroutine dispatcher (defaults to platform default)

Example:

val modules = listOf(
lazyModule { /* module 1 */},
lazyModule { /* module 2 */}
)
startKoin {
lazyModules(modules)
}