// Paweł Szulc

A roadtrip with monads: from MTL, through tagless, to BIO

// Daniel Sivan

Starting from versatile reactive programming libraries like Akka Streams, and growing up to high-footprint streaming data platforms such as Spark and Flink, data streaming has become an important idiom occupying multiple niches. What differentiates data streaming platforms from comparatively simple libraries? This talk focuses on one specific aspect: time windowing, and the notion of time.


Riskified aggregates large amounts of behavioral data. The kind of stream processing we perform relies on time windowing: incoming event data is partitioned according to bound timeframes.


Time windowing, and the notion of time used, are a key difference between platforms and libraries—platforms offer a robust approach to time windowing based on event-provided timestamps, yielding deterministic results regardless of events arrival time or order; streaming libraries generally just check the local clock.


Our solution brings the notion of event-time to Akka Streams. During the talk I will describe the concepts needed for enabling event-time processing, along with simple building blocks for implementation.

// Nadav Wiener

// Gideon Caller

// Lior Schejter

// Ohad Shai

// Ron Aharoni

// Anatoly Rabinovich

Building a microservice system is fun. Running a microservice system in production is, well, it can be fun, but it can also be challenging. It is one thing to build a microservice system that works well when everything is up and running. It is entirely another thing to create a microservice system that can withstand the exciting array of failures that happen in a distributed network environment. In this talk, you will learn about messaging strategies for microservice systems. What are the significant considerations of synchronous versus asynchronous messaging? When should you use messaging strategies such as maybe-once or at-least-once messaging? Is it possible to do exactly-once messaging? Learn how to build microservice systems that treat failure as an architectural feature, not as an afterthought.


This presentation explores the various strategies used for messaging in a distributed microservice systems environment. We explore the pros and cons of synchronous and asynchronous messaging. We also look at the advantages and disadvantages of the message push and pull message delivery approaches.

// Itamar Ravid

 // Yulia Stolin