When working with distributed systems, one common challenge is ensuring that messages are processed exactly once. In one of our application we were…