Transport

A message broker as Wow uses it: strings in, strings out.

A transport knows nothing about Wow messages. TransportMessageBus names topics, encodes, decodes, validates and builds exchanges; a transport only moves TransportMessages to topics and hands TransportRecords back to a consumer group. Kafka, Redis Streams and InMemoryTransport implement it; a new broker implements it once and gets the command, event-stream and state-event buses from TransportCommandBus, TransportDomainEventBus and TransportStateEventBus.

Inheritors

Properties

Link copied to clipboard

What the me.ahoo.wow.runtime.WowRuntime closes after its dispatchers stop, within the same shutdown deadline (for example a producer that must flush), or RuntimeResource.NONE.

Functions

Link copied to clipboard
open override fun close()
Link copied to clipboard
abstract fun open(group: String, topics: Set<String>): TransportReceiver

Joins consumer group on topics. Each call is one logical consumer: members of one group share the records, different groups each receive all of them.

Link copied to clipboard
abstract fun send(message: TransportMessage): Mono<Void>

Publishes message to its topic. The returned Mono completes once the broker has accepted it.