We’ve done a lot of work in the past six months to simplify how to use and deploy Coherence Data Grids around the globe. It’s always been possible to do these things – Coherence provides some great infrastructure like *Extend to do this – but we’ve lacked a concrete framework. The Push Replication Pattern is making some serious in-roads to solve some of the challenges faced when designing a globally distributed Data Grid.
There are some great advantages of this pattern;
- We’ve provided the complete source code for it. You can embed, change, enhance it as you like. No restrictions.
- It provides support for completely asynchronous, but guaranteed in-order updates (with batching) between multiple-sites (Data Grids).
- It provides a completely pluggable infrastructure layer to programmatically resolve data conflicts between sites.
- It avoids the classic problems of other approaches, like explicitly setting up dedicated and single point of failures with Mirror Services, Gateways or routers. The solution simply embeds in your application.
- It’s completely monitorable via JMX.
- It supports almost every type of WAN replication/synchronization scenario, including; one-to-one (uni-directional), one-to-one (multi-directional), many-to-one (uni-directional “centralized”), one-to-many (uni-directional “hub”), many-to-many (multi-directional “mesh”) architectures – with all of the above mentioned guarantees.
- It’s not just a theoretical pattern – it’s in production in several large projects.
- We’re constantly enhancing it based on customer demand and feedback.
I’ll leave you with this quote:
“The [push replication] tools are working very well. This is very good news for us, as it allows us populate and re-populate caches across the globe in a safe and consistent way. Thanks…”