Skip to content

Instantly share code, notes, and snippets.

@vvcephei
vvcephei / suppression-blog-figure-1.java
Last active March 15, 2019 21:16
Suppression Blog Figure 1
events
.groupByKey()
.windowedBy(TimeWindows.of(Duration.ofMinutes(2)))
.count(Materialized.as("count-metric"))
// graph servlet queries "count-metric"
@vvcephei
vvcephei / suppression-blog-figure-2.java
Created March 6, 2019 17:31
Suppression Blog Figure 2
events
.groupByKey()
.windowedBy(TimeWindows.of(Duration.ofMinutes(2)))
.count(Materialized.as("count-metric"))
.filter( _ < 4 )
.toStream()
.foreach( /* Send that email! */)
// graph servlet queries "count-metric"
@vvcephei
vvcephei / suppression-blog-figure-3.java
Created March 6, 2019 17:34
Suppression Blog Figure 3
events
.groupByKey()
.windowedBy(
TimeWindows.of(Duration.ofMinutes(2).withGrace(Duration.ofMinutes(2))
)
.count(Materialized.as("count-metric"))
.suppress(Suppressed.untilWindowClose(BufferConfig.unbounded()))
.filter( _ < 4 )
.toStream()
.foreach( /* Send that email! */)
@vvcephei
vvcephei / suppression-blog-figure-4.java
Created March 6, 2019 17:36
Suppression Blog Figure 4
driver.pipeInput(recordFactory.create(
/* topic */ "input",
/* key */ "A",
/* value */ "v1",
/* timestamp */ 10L
));
// Stream time is now 10L
driver.pipeInput(recordFactory.create("input", "A", "v2", 11L));
// Stream time is now 11L
@vvcephei
vvcephei / suppression-blog-figure-5.java
Created March 6, 2019 17:37
Suppression Blog Figure 5
builder
.table("users")
.suppress(Suppressed.untilTimeLimit(
BufferConfig.maxBytes(myConfig.getUsersBufferSize())
))
...