Build a cache which listens for a given JMS topic and invalidates entries in the cache based on the notification. No need for synchronization just straight invalidation for now. Code this as a plugin to the EJB container as is today (simpler) we will move to centralized MBean and centralized invalidation in the future. This option should be called Option E (in keeping with the great tradition of Option A/B/C/D).