public interface Suppressed<K>
Modifier and Type | Interface and Description |
---|---|
static interface |
Suppressed.BufferConfig<BC extends Suppressed.BufferConfig<BC>> |
static interface |
Suppressed.StrictBufferConfig
Marker interface for a buffer configuration that is "strict" in the sense that it will strictly
enforce the time bound and never emit early.
|
Modifier and Type | Method and Description |
---|---|
static <K> Suppressed<K> |
untilTimeLimit(java.time.Duration timeToWaitForMoreEvents,
Suppressed.BufferConfig bufferConfig)
Configure the suppression to wait
timeToWaitForMoreEvents amount of time after receiving a record
before emitting it further downstream. |
static Suppressed<Windowed> |
untilWindowCloses(Suppressed.StrictBufferConfig bufferConfig)
Configure the suppression to emit only the "final results" from the window.
|
Suppressed<K> |
withName(java.lang.String name)
Use the specified name for the suppression node in the topology.
|
static Suppressed<Windowed> untilWindowCloses(Suppressed.StrictBufferConfig bufferConfig)
bufferConfig
- A configuration specifying how much space to use for buffering intermediate results.
This is required to be a "strict" config, since it would violate the "final results"
property to emit early and then issue an update later.static <K> Suppressed<K> untilTimeLimit(java.time.Duration timeToWaitForMoreEvents, Suppressed.BufferConfig bufferConfig)
timeToWaitForMoreEvents
amount of time after receiving a record
before emitting it further downstream. If another record for the same key arrives in the mean time, it replaces
the first record in the buffer but does not re-start the timer.K
- The key type for the KTable to apply this suppression to.timeToWaitForMoreEvents
- The amount of time to wait, per record, for new events.bufferConfig
- A configuration specifying how much space to use for buffering intermediate results.Suppressed<K> withName(java.lang.String name)
This can be used to insert a suppression without changing the rest of the topology names (and therefore not requiring an application reset).
Note however, that once a suppression has buffered some records, removing it from the topology would cause the loss of those records.
A suppression can be "disabled" with the configuration untilTimeLimit(Duration.ZERO, ...
.
name
- The name to be used for the suppression node and changelog topicname
.