2 Comments
Jan 15Liked by Yaroslav Tkachenko

My experience is that there's a big difference between actors and Flink KeyedCoProcessfunction - both in terms of expressiveness as well as the problem it addresses. It is true that Lightbend made a huge progress in bringing actors to the mainstream. However, it doesn't solve the problem of state across streams with timeouts. Also, durability and scalability relies on Actor persistence plus akka clustering which in my understanding only Lightbend understands well, and is farfetched. Will not even extend to replaying messages without duplicates and scaling up/down.

I used KeyedProcessfunctions to develop stateful microservices for trading, and persist risk factors. Also have seen other teams using Flink Statefun and the infrastructure that needs to be leveraged is considerably smaller. ReState is a spin-off of Flink Statefun but with the advantage of a simpler setup.

https://restate.dev/blog/why-we-built-restate/

"""Stateful Functions (in Apache Flink): Our thoughts started a while back, and our early experiments created StateFun. These thoughts and ideas then grew to be much much more now, resulting in Restate. Of course, you can still recognize some of the StateFun roots in Restate."""

Love what this team is doing, and I encourage you to follow their work.

Expand full comment
author

Thanks for sharing your experience! Yes, Restate does look very promising, it'd be interesting to see some benchmarks for running it with high-throughput workloads.

Expand full comment