SlideShare a Scribd company logo
1 of 48
Download to read offline
Design Patterns Facilitated by
Geode's WAN Distribution
Helena Bales, Diane Hardman, and Karen Miller
1
What we'll cover
1. an introduction to Geode WAN distribution
2. some common design patterns
3. Geode example demo of an active-active system
2
to WAN distribution
3
Issues we contend with:
1. fault tolerance
2. performance
Geode WAN replication gives us both.
4
Fault Tolerance
Keeping a redundant cluster as a hot spare 

dramatically reduces service interruptions.
To be effective, the hot spare should be
• physically removed from the original
• independent of the original
• immediately available when a failure 

occurs
5
Performance
If data is generated in Chile, but
needs to be used by an
application in India, it takes a lot
of time for that data to travel
around the world.
6
Geode's WAN distribution feature
At the region level:
• sets up asynchronous communication between clusters (sites)

(synchronous updates would be amazingly slow)
• implements an eventual consistency model, facilitating
replication of region operations, such that distinct clusters can
host the same region
7
Event Queues make it work
Gateway Sender Queues propagate region write operations from one
cluster to another without impacting the performance of CRUD operations
within each site.
cluster 

A
cluster 

B
gateway sender gateway receiver
DSID=1 DSID=2
8
unidirectional cluster 

A
cluster 

B
cluster 

A
cluster 

B
bidirectional (2 unidirectional queues)
9
Configuration
Given that we know the assigned DSIDs, create:
• locators
• servers
• gateway receivers
• gateway senders
• regions
The Geode WAN example does all of this.
10
Design Patterns
11
Blue Green Disaster Recovery
A standard pattern for increasing fault tolerance.
Works in an active-passive mode.
12
Blue-Green Disaster Recovery
A B
app 1 app 1
ACTIVE PASSIVE
13
Blue-Green Disaster Recovery
The disaster takes out cluster A
A B
app 1 app 1
14
Blue-Green Disaster Recovery
A B
app 1 app 1
ACTIVE
15
Blue Green Disaster Recovery
Since we're now down to 1 cluster, we need a new passive
site in order to regain the fault tolerance.
16
Blue-Green Disaster Recovery
A B
app 1 app 1
ACTIVE
PASSIVE
17
Active-Active
A B
app 1 app 1 app 1 app 1
18
Active-Active
GatewayConflictResolver:
• A cache-level plugin
• Resolves changes with
other Distributed System
IDs
• Checks that sites will
receive updates in the
same way
• Can be overridden with
custom implementations
• Must be the same for all
distributed systems
A B
app 1 app 1 app 1 app 1
GatewayConf
lictResolver
GatewayConf
lictResolver
19
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
20
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
put
Put a new
entry:
Id: 3
Name: Shirt
Price: $15
21
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $15
22
Active-Active - Real-world Example
app 1app 1
London
/products
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $15
23
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $15
Id: 3
Name: Shirt
Price: $15
24
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
put
Id: 3
Name: Shirt
Price: $15
Id: 3
Name: Shirt
Price: $15
Put to update
an entry:
Id: 3
Name: Shirt
Price: $15 $10.50
25
Active-Active - Real-world Example
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $15
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $10.50
26
Active-Active - Real-world Example
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $15
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $10.50
27
Active-Active - Real-world Example
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $10.50
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $10.50
28
Active-Active - Example with multiple regions
app 1app 1
London
/products
/
customers
app 1 app 1
NY
/products
/
customers
29
Active-Active - Redundancy with multiple regions
app 1app 1
London
/NewYork
Products
/London
Products
app 1 app 1
NY
/NewYork
Products
/London
Products
30
• Multiple sites have and use copies of the same data
• Eventual consistency between sites
• Conflicting changes are resolved
• Reads are faster than writes
• Can be used with multiple regions
• Reduces risk of data loss due to redundancy at the site level
Active-Active: Summary
31
CQRS
• Command Query Responsibility Segregation
• Separates the responsibilities of Querying from Commands
• Queries cannot have side effects
• Commands may not return data
• Can make it easier to reason about the state of the system
32
CQRS
A B
app app querying
app
querying
app
33
CQRS - Real world Example
A B
Temp.
Sensor
Fill
Sensor
querying
app
querying
app
Factory site Analytics site
/coffee/coffee
34
CQRS - Example with two Regions
A B
Temp.
Sensor
Fill
Sensor
querying
app
querying
app
Factory site Analytics site
/coffee /coffee
/cafeAuLait /cafeAuLait
35
Hub and Spoke (or Star) Topology
Design patterns are
location-aware.
36
Adelaide
app
Australia-based apps communicate
with a physically-close site.
37
Adelaide
Only the Adelaide cluster writes to Australia-based region entries.
/Companies region:



("Acme", "10 Main St., Sydney, NSW, Australia")

("Best", "12 Oak, Portland, OR, USA")

("Cabet", "4 Rue Blanc, Paris, France")

("Daks", "7 Magpie, Adelaide, Adelaide, Australia")
38
Adelaide
Forward all operation requests for
Australia-based region entries to the
hub and then to the Adelaide cluster
for processing.
39
GatewayEventFilter
Follow the Sun Pattern (Global Book pattern)
NY London
Tokyo
Transactions occur in the active
timezone.
40
Follow the Sun Pattern (Global Book pattern)
NY London
Tokyo
41
Demonstration
42
Demonstration
https://github.com/apache/geode-examples/tree/develop/wan
NY
/
example-
region
app 1
London
/
example-
region
DSID=1 DSID=2
43
[TODO] Demo video slide
44
Questions?
45
EXTRA SLIDES
46
unidirectional configuration
1. Plan the cluster sites. Assign a unique distributed system ID (DSID) to
each site, and let the sites know all the DSIDs of sites they will
communicate with.
2. create locators(in each cluster), specifying the DSID and the locators in
the remote cluster
3. create servers (in each cluster), specifying the DSID
4. create the gateway receiver on the receiving side
5. create gateway sender(s) on the sending side
6. create regions, specifying which gateway senders through which to
propagate data
47
adding SSL/TLS to the configuration
• specify 

ssl-enabled-components=all

in the gemfire.properties file
• specify keystore, truststore, and username/password in the
gfsecurity.properties file
• specify both properties files on locator/server start up
See SSL Sample Implementation in the Geode manual for details.
48

More Related Content

Similar to Design Patterns Facilitated by Geode's WAN Distribution

Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & AlluxioUltra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & AlluxioAlluxio, Inc.
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Nane Kratzke
 
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructuredevopsdaysaustin
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructurerhirschfeld
 
RedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge DevicesRedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge DevicesRedis Labs
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first designKyrylo Reznykov
 
DEVNET-1166 Open SDN Controller APIs
DEVNET-1166	Open SDN Controller APIsDEVNET-1166	Open SDN Controller APIs
DEVNET-1166 Open SDN Controller APIsCisco DevNet
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllLegacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllMuly Gottlieb
 
Networking Challenges for the Next Decade
Networking Challenges for the Next DecadeNetworking Challenges for the Next Decade
Networking Challenges for the Next DecadeOpen Networking Summit
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterpriseandreas kuncoro
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterpriseandreas kuncoro
 
Disaster recovery on demand on the cloud
Disaster recovery on demand on the cloudDisaster recovery on demand on the cloud
Disaster recovery on demand on the cloudNati Shalom
 
Disaster Recovery on Demand on the Cloud
Disaster Recovery on Demand on the CloudDisaster Recovery on Demand on the Cloud
Disaster Recovery on Demand on the CloudNati Shalom
 
Accelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of GenomicsAccelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of GenomicsAmazon Web Services
 
Netflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search RoadshowNetflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search RoadshowAdrian Cockcroft
 
Batty consumerization of geospatial
Batty consumerization of geospatialBatty consumerization of geospatial
Batty consumerization of geospatialGeCo in the Rockies
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftSerhat Dirik
 
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...confluent
 
Zoo keeper in the wild
Zoo keeper in the wildZoo keeper in the wild
Zoo keeper in the wilddatamantra
 

Similar to Design Patterns Facilitated by Geode's WAN Distribution (20)

Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & AlluxioUltra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
 
Ansible for networks
Ansible for networksAnsible for networks
Ansible for networks
 
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructure
 
RedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge DevicesRedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge Devices
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
 
DEVNET-1166 Open SDN Controller APIs
DEVNET-1166	Open SDN Controller APIsDEVNET-1166	Open SDN Controller APIs
DEVNET-1166 Open SDN Controller APIs
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllLegacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
 
Networking Challenges for the Next Decade
Networking Challenges for the Next DecadeNetworking Challenges for the Next Decade
Networking Challenges for the Next Decade
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Disaster recovery on demand on the cloud
Disaster recovery on demand on the cloudDisaster recovery on demand on the cloud
Disaster recovery on demand on the cloud
 
Disaster Recovery on Demand on the Cloud
Disaster Recovery on Demand on the CloudDisaster Recovery on Demand on the Cloud
Disaster Recovery on Demand on the Cloud
 
Accelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of GenomicsAccelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of Genomics
 
Netflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search RoadshowNetflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search Roadshow
 
Batty consumerization of geospatial
Batty consumerization of geospatialBatty consumerization of geospatial
Batty consumerization of geospatial
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
 
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
 
Zoo keeper in the wild
Zoo keeper in the wildZoo keeper in the wild
Zoo keeper in the wild
 

More from VMware Tanzu

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItVMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Recently uploaded (20)

Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

Design Patterns Facilitated by Geode's WAN Distribution

  • 1. Design Patterns Facilitated by Geode's WAN Distribution Helena Bales, Diane Hardman, and Karen Miller 1
  • 2. What we'll cover 1. an introduction to Geode WAN distribution 2. some common design patterns 3. Geode example demo of an active-active system 2
  • 4. Issues we contend with: 1. fault tolerance 2. performance Geode WAN replication gives us both. 4
  • 5. Fault Tolerance Keeping a redundant cluster as a hot spare 
 dramatically reduces service interruptions. To be effective, the hot spare should be • physically removed from the original • independent of the original • immediately available when a failure 
 occurs 5
  • 6. Performance If data is generated in Chile, but needs to be used by an application in India, it takes a lot of time for that data to travel around the world. 6
  • 7. Geode's WAN distribution feature At the region level: • sets up asynchronous communication between clusters (sites)
 (synchronous updates would be amazingly slow) • implements an eventual consistency model, facilitating replication of region operations, such that distinct clusters can host the same region 7
  • 8. Event Queues make it work Gateway Sender Queues propagate region write operations from one cluster to another without impacting the performance of CRUD operations within each site. cluster 
 A cluster 
 B gateway sender gateway receiver DSID=1 DSID=2 8
  • 9. unidirectional cluster 
 A cluster 
 B cluster 
 A cluster 
 B bidirectional (2 unidirectional queues) 9
  • 10. Configuration Given that we know the assigned DSIDs, create: • locators • servers • gateway receivers • gateway senders • regions The Geode WAN example does all of this. 10
  • 12. Blue Green Disaster Recovery A standard pattern for increasing fault tolerance. Works in an active-passive mode. 12
  • 13. Blue-Green Disaster Recovery A B app 1 app 1 ACTIVE PASSIVE 13
  • 14. Blue-Green Disaster Recovery The disaster takes out cluster A A B app 1 app 1 14
  • 15. Blue-Green Disaster Recovery A B app 1 app 1 ACTIVE 15
  • 16. Blue Green Disaster Recovery Since we're now down to 1 cluster, we need a new passive site in order to regain the fault tolerance. 16
  • 17. Blue-Green Disaster Recovery A B app 1 app 1 ACTIVE PASSIVE 17
  • 18. Active-Active A B app 1 app 1 app 1 app 1 18
  • 19. Active-Active GatewayConflictResolver: • A cache-level plugin • Resolves changes with other Distributed System IDs • Checks that sites will receive updates in the same way • Can be overridden with custom implementations • Must be the same for all distributed systems A B app 1 app 1 app 1 app 1 GatewayConf lictResolver GatewayConf lictResolver 19
  • 20. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products 20
  • 21. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products put Put a new entry: Id: 3 Name: Shirt Price: $15 21
  • 22. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products Id: 3 Name: Shirt Price: $15 22
  • 23. Active-Active - Real-world Example app 1app 1 London /products app 1 app 1 NY /products Id: 3 Name: Shirt Price: $15 23
  • 24. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products Id: 3 Name: Shirt Price: $15 Id: 3 Name: Shirt Price: $15 24
  • 25. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products put Id: 3 Name: Shirt Price: $15 Id: 3 Name: Shirt Price: $15 Put to update an entry: Id: 3 Name: Shirt Price: $15 $10.50 25
  • 26. Active-Active - Real-world Example app 1 app 1 NY /products Id: 3 Name: Shirt Price: $15 app 1app 1 London /products Id: 3 Name: Shirt Price: $10.50 26
  • 27. Active-Active - Real-world Example app 1 app 1 NY /products Id: 3 Name: Shirt Price: $15 app 1app 1 London /products Id: 3 Name: Shirt Price: $10.50 27
  • 28. Active-Active - Real-world Example app 1 app 1 NY /products Id: 3 Name: Shirt Price: $10.50 app 1app 1 London /products Id: 3 Name: Shirt Price: $10.50 28
  • 29. Active-Active - Example with multiple regions app 1app 1 London /products / customers app 1 app 1 NY /products / customers 29
  • 30. Active-Active - Redundancy with multiple regions app 1app 1 London /NewYork Products /London Products app 1 app 1 NY /NewYork Products /London Products 30
  • 31. • Multiple sites have and use copies of the same data • Eventual consistency between sites • Conflicting changes are resolved • Reads are faster than writes • Can be used with multiple regions • Reduces risk of data loss due to redundancy at the site level Active-Active: Summary 31
  • 32. CQRS • Command Query Responsibility Segregation • Separates the responsibilities of Querying from Commands • Queries cannot have side effects • Commands may not return data • Can make it easier to reason about the state of the system 32
  • 33. CQRS A B app app querying app querying app 33
  • 34. CQRS - Real world Example A B Temp. Sensor Fill Sensor querying app querying app Factory site Analytics site /coffee/coffee 34
  • 35. CQRS - Example with two Regions A B Temp. Sensor Fill Sensor querying app querying app Factory site Analytics site /coffee /coffee /cafeAuLait /cafeAuLait 35
  • 36. Hub and Spoke (or Star) Topology Design patterns are location-aware. 36
  • 38. Adelaide Only the Adelaide cluster writes to Australia-based region entries. /Companies region:
 
 ("Acme", "10 Main St., Sydney, NSW, Australia")
 ("Best", "12 Oak, Portland, OR, USA")
 ("Cabet", "4 Rue Blanc, Paris, France")
 ("Daks", "7 Magpie, Adelaide, Adelaide, Australia") 38
  • 39. Adelaide Forward all operation requests for Australia-based region entries to the hub and then to the Adelaide cluster for processing. 39 GatewayEventFilter
  • 40. Follow the Sun Pattern (Global Book pattern) NY London Tokyo Transactions occur in the active timezone. 40
  • 41. Follow the Sun Pattern (Global Book pattern) NY London Tokyo 41
  • 44. [TODO] Demo video slide 44
  • 47. unidirectional configuration 1. Plan the cluster sites. Assign a unique distributed system ID (DSID) to each site, and let the sites know all the DSIDs of sites they will communicate with. 2. create locators(in each cluster), specifying the DSID and the locators in the remote cluster 3. create servers (in each cluster), specifying the DSID 4. create the gateway receiver on the receiving side 5. create gateway sender(s) on the sending side 6. create regions, specifying which gateway senders through which to propagate data 47
  • 48. adding SSL/TLS to the configuration • specify 
 ssl-enabled-components=all
 in the gemfire.properties file • specify keystore, truststore, and username/password in the gfsecurity.properties file • specify both properties files on locator/server start up See SSL Sample Implementation in the Geode manual for details. 48