public async Task RunAsync(CancellationToken cancellationToken = default) { await InitRedisAsync(cancellationToken); await InitElasticAsync(cancellationToken); await _migrations.FinalizeAsync(cancellationToken); // load dynamic configurations await Task.WhenAll(_configProviders.Select(p => p.LoadAsync(_services, cancellationToken))); await InitStorageAsync(cancellationToken); await ConfigureUsersAsync(cancellationToken); await ConfigureAuthAsync(cancellationToken); }