My team heavily utilizes Lagom’s ReadSideProcessors to create non-primary identifier lookups for our entities. It is an awesome feature that improves our write-side performance, as well as our assurance of delivery.
Regarding the assurance of delivery though, we put some relatively less-reliable processing in read side processors, specifically so that they get retried when they fail. Currently, it seems that when we bubble up the exception (or more likely failed CompletableFuture), it is logged by
akka.stream.scaladsl.RestartWithBackoffSource as and ERROR with message “Restarting graph due to failure”. Considering this is a place that we expect to have some level of failures, we’d like to not report them as severely as other errors in the system (i.e. warn, or at least let the RSP report in some way the level of failure).
This logging isn’t in a Read side processor related class, or a Lagom class at all, so we are hesitant to ignore all akka.stream.scaladsl.RestartWithBackoffSource errors. We could write some log-mapper that at least translates any RestartWithBackoffSource ERRORs to a warning, but that still concerns me for the same reason, just a little less.
I’m not sure there is a way around it if the RSP implementation wants to utilize RestartWithBackoffSource though, and I understand why that is a perfect tool for it.