The goal of the project was to notify users on store in a real time fashion of available coupons, so that they could use them more effectively on the spot and save money.
The challenge consisted in guaranteeing a performant consistent non-blocking streaming consuming application, that would maintain stability with back pressure and without single-point-of-failures, and at the same time provide some basic state consistency in order not to spam users with more than one reminder per day.
A combination of Akka streaming application developed in Scala to consume from an existing Kafka queue, and lightning fast in-memory database (Redis) for persistence delivered the job.