Highly recommended reading:
Several points that helped my design implementation using "distributed locks":
- Distributed locks always have a "shelf life" (so it's really a "lease")
- Expiration of a "lock" is essential.
- Use an EIP framework that supports components that remain simple.
- Potential need to move deployments models to a platform environment following a microservices architecture.
So keeping these in mind, Spring Integration fit well. The key objects used were: