public async Task PublishAsync(object message, Func <OutboxPublishContext, Task> inlineFilter, CancellationToken cancellationToken = default)
        {
            var context = await publishFilterRunner.RunFiltersAsync(message, cancellationToken);

            if (!context.Canceled)
            {
                await inlineFilter(context);

                var entity = OutboxEntry.FromPublishContext(context);
                outboxDbContext.OutboxEntries.Add(entity);
            }
        }
Beispiel #2
0
 /// <summary>
 /// Produce the <see cref="OutboxEntry"/> on Kafka using the data contained
 /// </summary>
 /// <param name="entry">The outbox message</param>
 public async Task Produce(OutboxEntry entry)
 {
     await _kafkaProducer.InternalProduce(entry.Topic, entry.Key, entry.Payload);
 }