I need to write some service code which may be integrated into a web service and also may be integrated into a Java Desktop app.

I want the call logic to get the objects it needs from a in-memory cache layer consisting of (I think), two caches:

1) a read-through cache backed by an Oracle database (possibly with Continuous Query Notification) 2) a read-through / write-through cache backed by some kind of light-weight local store.

I want the application to get data from the 1st cache and use the 2nd cache as a backup. So, anything read from the 1st cache must be written to the 2nd one.

The reason for the two caches is that I want the cache to survive a restart during which the Oracle database may not be available. If there is a way to do that in a single cache, even better.

I want the whole thing to be as tightly-packaged as possible -- so it can be used by various Java applications (desktop, web, etc) without caring about the execution environment.

I am thinking along the lines of Apache Ignite, possibly with Cassandra as the backing database for the backup cache? But I don't know much about either of them. I think Apache Ignite has an "embedded mode" that would make it kind of "light-weight" like I am looking for (e.g., I don't want a separate cluster/node that has to be started for the service to work.)

I appreciate any and all suggestions!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.