TopicNaming

fun interface TopicNaming

The topic that carries one kind of message of an aggregate on one backend. Topic names are frozen wire format: Kafka wow.<context>.<aggregate>.command, Redis <context>.<aggregate>:command, and likewise per kind.

Functions

Link copied to clipboard
fun TopicNaming.memoized(maxAggregates: Int = DEFAULT_MEMOIZED_AGGREGATES): TopicNaming

This naming computed once per aggregate, which holds because a topic depends only on the context and aggregate names. At most maxAggregates aggregates are kept, so records naming arbitrary aggregates cannot grow it without bound; beyond that a topic is computed on every call.

Link copied to clipboard
abstract fun topicOf(namedAggregate: NamedAggregate): String