IMDG standards
I'm doing refactoring of cache module in my project. Currently ehcache with terracotta is used. Our goal is, since the project is open source, to provide open source standards with easy to replace imdg provider. My first thought was to use JCache or Spring Boot Cache, however, our cache is a bit complex and requires transactional mode. As far as I notice both of APIs mentioned above provide support for atomic operations only. In case of JCache EntryProcessor is not an answer, since it locks the object. Unfortunately, in my case operations on objects sometimes are time consuming and complex krogerfeedback . I know that vendor specific solutions have transactions(like Ignite or Hazelcast), but then I'm losing easy-to-replace imdg provider.
How is it done in complex projects in the industry? Is it a good idea to extend JCache API and create my own on top, with transactions from, let's say, Ignite? Or maybe I should focus more on making my operations more atomical and redesign that layer?