// This method gets called by the runtime. Use this method to configure Orleans. public static void ConfigureOrleans(HostBuilderContext ctx, ISiloBuilder builder) { var configuration = ctx.Configuration; var topicConfiguration = new TopicCreationConfig { AutoCreate = true, Partitions = 8 }; builder.ConfigureCluster(configuration) .UseDashboard(x => x.HostSelf = false) .ConfigureEndpoints() .AddAssemblies(typeof(UserRegistrationStatusGrain)) .AddKafka(Constants.StreamProviderName) .WithOptions(options => { options.FromConfiguration(ctx.Configuration); options.AddTopic(nameof(UserVerificationEvent), topicConfiguration); options.AddTopic(nameof(UserRegisteredEvent), topicConfiguration); }) .AddJson() .Build() .AddMemoryGrainStorage("PubSubStore") .AddMemoryGrainStorageAsDefault() .UseMembershipProvider(configuration, x => { x.ConfigureConsulClustering(configuration); x.ConfigureKubernetesClustering(configuration); }) .UseLinuxEnvironmentStatistics() .AddPrometheusTelemetry(); }
// This method gets called by the runtime. Use this method to configure Orleans. public static void ConfigureOrleans(HostBuilderContext ctx, ISiloBuilder builder) { var configuration = ctx.Configuration; var topicConfiguration = new TopicCreationConfig { AutoCreate = true, Partitions = 8 }; builder.ConfigureCluster(configuration) .UseDashboard(x => x.HostSelf = false) .ConfigureEndpoints() .AddAssemblies(typeof(HelloWorldGrain)) .AddKafka(Constants.StreamProviderName) .WithOptions(options => { options.FromConfiguration(ctx.Configuration); // Add Topics // options.AddTopic(nameof(Event), topicConfiguration); }) .AddJson() .Build() .AddMemoryGrainStorage("PubSubStore") .AddMemoryGrainStorageAsDefault() .UseMembershipProvider(configuration, x => { x.ConfigureConsulClustering(configuration); x.ConfigureKubernetesClustering(configuration); }); }