public async Task ProduceEvent(IEvent @event) { var eventEnvelope = MapEventToEnvelope(@event); var serializedEvent = SerializeEventEnvelope(eventEnvelope); var headers = new Headers { { HeadersValue.HeaderName, stringSerializer.Serialize(string.Empty, @event.GetType().GetFriendlyTypeName()) } }; var partitionKey = $"A:{globalSettings.Value.ServiceId}"; var message = new Message <byte[], byte[]> { Value = stringSerializer.Serialize(kafkaTopicProvider.GetTopicName(), serializedEvent), Key = stringSerializer.Serialize(kafkaTopicProvider.GetTopicName(), partitionKey), Headers = headers }; logger.LogDebug($"Event produced: {@event.GetType().Name}"); using (var producer = new Producer <byte[], byte[]>(GetKafkaConfigs(), new ByteArraySerializer(), new ByteArraySerializer())) { await producer.ProduceAsync(kafkaTopicProvider.GetTopicName(), message); } }
private void ResubscribeToTopics() { consumer.Subscribe(kafkaTopicProvider.GetTopicName()); logger.LogDebug($"Kafka Consumer. Subscribed to: [{string.Join(", ", consumer.Subscription)}]"); }