SlideShare a Scribd company logo
1 of 38
Download to read offline
MESSAGING ARCHITECTURES WITH NOSQL
DATABASES AS MESSAGE STORES
JavaOne 2012 Conference (#JavaOne)
Srini Penchikala (@srinip)
10.4.12
GOALS OF THIS PRESENTATION
 NoSQL databases to store messages with focus on EIP
Patterns
 Target Audience: Integration Architects and Developers
 Redis, Oracle NoSQL, and MongoDB databases
 Demos (Java application)
 Not a NoSQL or Messaging intro presentation
 Format:
 50 min presentation & demos
 10 min for Q&A 2
WHO AM I
 Software Architect
 Co-author of Spring Roo in Action book
 Editor at InfoQ.com
 Background:
 Financial services industry
 Regulatory compliance (PCI & FISMA)
 J2EE architecture model
 Scrum for software development
 Agile (v./and) Architecture
3
QUICK POLL
 Who is using EIP Patterns?
 Spring Integration?
 NoSQL?
 Spring Data?
4
TODAY’S DISCUSSION
 Enterprise Integration Patterns
 NoSQL databases
 NoSQL as message stores
 MongoDB / Redis / Oracle NoSQL Database
 Spring Data
 Spring Integration framework
 Sample Java application
 Best Practices
 Conclusions
5
MESSAGING
 Advantages
 Limitations
 Message Loss
 Performance
 Security
 Availability
 Design Considerations*
6
*Main focus of this presentation
MESSAGING PATTERNS
 Message Store
 Claim Check
 Queue Channel
 Aggregator
 Resequencer
 Control Bus*
 Wire Tap*
7
URL: http://www.eaipatterns.com
*System monitoring and management
MESSAGE STORE
 Store Messages in a persistent
store (e.g. Database)
 Why Message Store?
 Performance
 Availability
8
http://www.eaipatterns.com/MessageStore.html
MESSAGE STORE USE CASES
 Message buffering
 Aggregator
 Resequencer
 Queue Channel
 Message loss prevention
 Claim Check
9
CLAIM CHECK
 Store message data in a
persistent store and pass a
Claim Check to subsequent
components.
 These components can use
Claim Check to retrieve the
stored information.
10
http://www.eaipatterns.com/StoreInLibrary.html
PERSISTENCE
 Key Value Data Store
 Redis
 Oracle NoSQL
 Document Database
 MongoDB
 GemFire
 JDBC
 In-Memory
11
NOSQL DATABASES
 Redis
 Redis-based MessageStore
 Publish-Subscribe Messaging adapters
 Oracle NoSQL Database
 Distributed key-value database
 ACID transactions
 Administration via Web console or CLI
 Use Cases: Online Display Advertising & Mobile Social Gaming
 MongoDB
 Document database
12
http://www.redis.io, http://www.mongodb.org
http://www.oracle.com/technetwork/products/nosqldb/overview/index.html
SPRING INTEGRATION
 Extension of the Spring framework
 Implements Enterprise Integration Patterns (EIP)
 Lightweight messaging
 Integration with external systems via declarative adapters
 Separation of concerns
13
*http://www.springsource.org/spring-integration
SPRING DATA
 Spring applications that use new data access technologies
 Non-relational databases
 Map-reduce frameworks
 Current Implementations:
 Big Data (Apache Hadoop)
 Data-Grid (GemFire)
 Key Value Stores (Redis)
 Document Stores (MongoDB)
 Graph Databases (Neo4j)
 Column Stores (Hbase) 14
*http://www.springsource.org/spring-data
SPRING ROO
 Rapid Java application development
 Nice integration for Spring Integration and Spring Data
frameworks
15
*http://www.springsource.org/spring-data
MESSAGE STORE “STRATEGY”
 Based on Strategy design pattern
 MessageStore strategy
 Used by QueueChannel and ClaimCheck patterns
 MessageGroupStore strategy
 Used by Aggregator and Resequencer patterns
 Implementations
 SimpleMessageStore (In-memory, Map-based)
 JdbcMessageStore (uses a relational database via JDBC)
 NoSQL Data Store
16
MESSAGE STORES
17
Message Store
Simple (In-Memory)* NoSQLJDBC
Redis* MongoDB* Oracle NoSQL* GemFire
*Covered in the sample application demos
SAMPLE APPLICATION
 Oracle NoSQL Database
 Redis
 Spring Integration
 Spring Data
 JUnit
18
*Code will be posted on Github
DEMO APPLICATION - USE CASE 1 (CLAIM CHECK)
19
Message
Header
Enricher
Message
Store
(In-Memory)
Claim
Check (In)
Queue
Channel
Transformer
Claim
Check (Out)
Message
Store
(MongoDB)
MESSAGE STORE DEMO 1
 In Memory Message Store
 MongoDB
20
DEMO APPLICATION - USE CASE 2 (AGGREGATOR)
21
Message Aggregator
Message
Store
(Redis)
Queue
Channel
Transformer
Message
Store (Oracle
NoSQL)
ARCHITECTURE DIAGRAM
22
Source:
http://static.springsource.org/spring-integration/docs/latest-ga/reference/html/samples.html
MESSAGE STORE DEMO 2
 Redis Demo
23
CUSTOM MESSAGE STORE IMPLEMENTATION
 MessageStore interface
 CustomOracleNoSqlMessageStore class
24
MESSAGE STORE DEMO 3
 Oracle NoSQL Message Store
25
MESSAGE STORE LIMITATIONS
 When using JdbcMessageStore, only Serializable data is
persisted by default
 Different instance of some Spring Bean is returned upon
deserialization for headers that represent certain types of
data
 Temporary Reply Channel issue
26
CONCLUSIONS
 Message Persistence
 Message Store pattern
 Claim Check
 NoSQL and Messaging
 “One Size Fits All” fits nothing
27
RESOURCES - BOOKS
28
Enterprise Integration Patterns
(http://eaipatterns.com)
Spring Integration in Action
(http://www.manning.com/fisher)
Spring Roo in Action
(http://www.manning.com/rimple)
RESOURCES
 Enterprise Integration Patterns (http://www.eaipatterns.com)
 Spring Integration (http://static.springsource.org/spring-
integration/reference/html)
 Spring Integration Support for Redis (http://static.springsource.org/spring-
integration/reference/html/redis.html)
 Oracle NoSQL Database
(http://www.oracle.com/technetwork/products/nosqldb/overview/index.html)
 http://blog.codecentric.de/en/2012/04/spring-data-redis/
 Message Store (http://www.eaipatterns.com/MessageStore.html)
 Redis (http://redis.io/topics/pubsub)
 MongoDB
 Spring Data
 Spring Data Redis
 Sample Application on Github
29
THANK YOU
 Contact Information
 http://www.infoq.com/author/Srini-Penchikala
 srinipenchikala@gmail.com
 @srinip
 http://srinip2007.blogspot.com
 Spring Roo in Action Book
 Questions?
30
BONUS SLIDES
 Bonus Slides
31
MESSAGING GATEWAYS
 JMS
 AMQP
 File
 FTP/SFTP
 HTTP (REST)
 WS (SOAP/POX)
 JDBC
 Twitter
 MongoDB
 Redis 32
CONTROL BUS
 Administer a messaging
system distributed across
multiple platforms
 Uses same messaging
mechanism used by
application data, but uses
separate channels to
transmit data for the
management of message
flow components 33
http://www.eaipatterns.com/StoreInLibrary.html
WIRE TAP
 Inspects messages that
travel on a point-to-point
channel
 Recipient List into the
channel that publishes
each incoming message to
the main channel and a
secondary channel
34
http://www.eaipatterns.com/WireTap.html
XML CONFIGURATION OF MESSAGE STORE
<bean id="redisMessageStore"
class="org.springframework.integration.redis.store.RedisMess
ageStore">
<constructor-arg ref="redisConnectionFactory"/>
</bean>
<int:channel id="somePersistentQueueChannel">
<int:queue message-store="redisMessageStore"/> <int:channel>
<int:aggregator input-channel="inputChannel" output-
channel="outputChannel" message-store="redisMessageStore"/>
35
MONITORING
 Control Bus
 JMX
36
MONITORING SCREENSHOT
 Screenshot
37
MONITORING (DEMO 4)
 DEMO
38

More Related Content

What's hot

Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Glen Hawkins
 
SQL Server 2016 Everything built-in FULL deck
SQL Server 2016 Everything built-in FULL deckSQL Server 2016 Everything built-in FULL deck
SQL Server 2016 Everything built-in FULL deckHamid J. Fard
 
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Tammy Bednar
 
Breaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over HadoopBreaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over HadoopDataWorks Summit
 
AX2012 Technical Track - Infrastructure, Davy Vliegen
AX2012 Technical Track - Infrastructure, Davy VliegenAX2012 Technical Track - Infrastructure, Davy Vliegen
AX2012 Technical Track - Infrastructure, Davy Vliegendynamicscom
 
Postgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database ServicePostgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database ServiceEDB
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsSimon Massey
 
Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...Tammy Bednar
 
Comparing glassfish-jboss
Comparing glassfish-jbossComparing glassfish-jboss
Comparing glassfish-jbosshung170872
 
Working with Oracle Big Data Cloud Compute Edition and Apache Zeppelin
Working with Oracle Big Data Cloud Compute Edition and Apache ZeppelinWorking with Oracle Big Data Cloud Compute Edition and Apache Zeppelin
Working with Oracle Big Data Cloud Compute Edition and Apache ZeppelinEdelweiss Kammermann
 
A History of Oracle Corporation
A History of Oracle CorporationA History of Oracle Corporation
A History of Oracle Corporationdsp
 
AX 2012 R3 Installation Guide
AX 2012 R3 Installation GuideAX 2012 R3 Installation Guide
AX 2012 R3 Installation GuideBiswanath Dey
 
Db2 analytics accelerator on ibm integrated analytics system technical over...
Db2 analytics accelerator on ibm integrated analytics system   technical over...Db2 analytics accelerator on ibm integrated analytics system   technical over...
Db2 analytics accelerator on ibm integrated analytics system technical over...Daniel Martin
 
AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021
AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021
AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021Sandesh Rao
 
IBM Power leading Cognitive Systems
IBM Power leading Cognitive SystemsIBM Power leading Cognitive Systems
IBM Power leading Cognitive SystemsHugo Blanco
 
Data virtualization, Data Federation & IaaS with Jboss Teiid
Data virtualization, Data Federation & IaaS with Jboss TeiidData virtualization, Data Federation & IaaS with Jboss Teiid
Data virtualization, Data Federation & IaaS with Jboss TeiidAnil Allewar
 

What's hot (20)

SSIS begineer
SSIS begineerSSIS begineer
SSIS begineer
 
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive
 
SQL Server 2016 Everything built-in FULL deck
SQL Server 2016 Everything built-in FULL deckSQL Server 2016 Everything built-in FULL deck
SQL Server 2016 Everything built-in FULL deck
 
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
Database@Home - Data Driven : Loading, Indexing, and Searching with Text and ...
 
Ssis 2008
Ssis 2008Ssis 2008
Ssis 2008
 
Breaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over HadoopBreaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over Hadoop
 
PyOSLC SDK - OSLCFEST
PyOSLC SDK - OSLCFESTPyOSLC SDK - OSLCFEST
PyOSLC SDK - OSLCFEST
 
AX2012 Technical Track - Infrastructure, Davy Vliegen
AX2012 Technical Track - Infrastructure, Davy VliegenAX2012 Technical Track - Infrastructure, Davy Vliegen
AX2012 Technical Track - Infrastructure, Davy Vliegen
 
Postgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database ServicePostgres Databases in Minutes with the EDB Postgres Cloud Database Service
Postgres Databases in Minutes with the EDB Postgres Cloud Database Service
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS Clouds
 
Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...
 
Comparing glassfish-jboss
Comparing glassfish-jbossComparing glassfish-jboss
Comparing glassfish-jboss
 
Olap
OlapOlap
Olap
 
Working with Oracle Big Data Cloud Compute Edition and Apache Zeppelin
Working with Oracle Big Data Cloud Compute Edition and Apache ZeppelinWorking with Oracle Big Data Cloud Compute Edition and Apache Zeppelin
Working with Oracle Big Data Cloud Compute Edition and Apache Zeppelin
 
A History of Oracle Corporation
A History of Oracle CorporationA History of Oracle Corporation
A History of Oracle Corporation
 
AX 2012 R3 Installation Guide
AX 2012 R3 Installation GuideAX 2012 R3 Installation Guide
AX 2012 R3 Installation Guide
 
Db2 analytics accelerator on ibm integrated analytics system technical over...
Db2 analytics accelerator on ibm integrated analytics system   technical over...Db2 analytics accelerator on ibm integrated analytics system   technical over...
Db2 analytics accelerator on ibm integrated analytics system technical over...
 
AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021
AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021
AutoML - Heralding a New Era of Machine Learning - CASOUG Oct 2021
 
IBM Power leading Cognitive Systems
IBM Power leading Cognitive SystemsIBM Power leading Cognitive Systems
IBM Power leading Cognitive Systems
 
Data virtualization, Data Federation & IaaS with Jboss Teiid
Data virtualization, Data Federation & IaaS with Jboss TeiidData virtualization, Data Federation & IaaS with Jboss Teiid
Data virtualization, Data Federation & IaaS with Jboss Teiid
 

Viewers also liked

Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.Ravi Teja
 
No SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDBNo SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDBKen Cenerelli
 
What Open Source and Open Data Mean for Tomorrow's Transportation Agencies
What Open Source and Open Data Mean for Tomorrow's Transportation AgenciesWhat Open Source and Open Data Mean for Tomorrow's Transportation Agencies
What Open Source and Open Data Mean for Tomorrow's Transportation AgenciesOpenPlans
 
Oracle in the Financial Service Industry
Oracle in the Financial Service Industry Oracle in the Financial Service Industry
Oracle in the Financial Service Industry CTI Group
 
Open 311: A Platform for a Participatory Civic Infrastructure
Open 311: A Platform for a Participatory Civic InfrastructureOpen 311: A Platform for a Participatory Civic Infrastructure
Open 311: A Platform for a Participatory Civic InfrastructureOpenPlans
 
Real-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache SparkReal-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache SparkGuido Schmutz
 
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...WSO2
 
Architecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash WorkshopArchitecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash WorkshopSudhir Tonse
 
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message QueueRestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message QueueGleicon Moraes
 
Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop DataWorks Summit/Hadoop Summit
 

Viewers also liked (11)

Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.
 
No SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDBNo SQL, No Problem: Use Azure DocumentDB
No SQL, No Problem: Use Azure DocumentDB
 
What Open Source and Open Data Mean for Tomorrow's Transportation Agencies
What Open Source and Open Data Mean for Tomorrow's Transportation AgenciesWhat Open Source and Open Data Mean for Tomorrow's Transportation Agencies
What Open Source and Open Data Mean for Tomorrow's Transportation Agencies
 
Oracle in the Financial Service Industry
Oracle in the Financial Service Industry Oracle in the Financial Service Industry
Oracle in the Financial Service Industry
 
Data into Action
Data into ActionData into Action
Data into Action
 
Open 311: A Platform for a Participatory Civic Infrastructure
Open 311: A Platform for a Participatory Civic InfrastructureOpen 311: A Platform for a Participatory Civic Infrastructure
Open 311: A Platform for a Participatory Civic Infrastructure
 
Real-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache SparkReal-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache Spark
 
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
 
Architecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash WorkshopArchitecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash Workshop
 
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message QueueRestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
 
Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop
 

Similar to Messaging Architectures with NoSQL Databases as Message Stores

Build Application With MongoDB
Build Application With MongoDBBuild Application With MongoDB
Build Application With MongoDBEdureka!
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorialsTIB Academy
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsOlivier DASINI
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring FrameworkEdureka!
 
Megha_Osi my sql productroadmap
Megha_Osi my sql productroadmapMegha_Osi my sql productroadmap
Megha_Osi my sql productroadmapOpenSourceIndia
 
[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)Steve Min
 
Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09GOTO Satoru
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...Lucas Jellema
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLbalwinders
 
Database synchronization prashant parit
Database synchronization   prashant paritDatabase synchronization   prashant parit
Database synchronization prashant paritPrashantP23
 
MoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQLMoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQLAlex Tomic
 
Flexible delivery options
Flexible delivery options Flexible delivery options
Flexible delivery options Micro Focus
 

Similar to Messaging Architectures with NoSQL Databases as Message Stores (20)

Build Application With MongoDB
Build Application With MongoDBBuild Application With MongoDB
Build Application With MongoDB
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorials
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern Applications
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
 
Megha_Osi my sql productroadmap
Megha_Osi my sql productroadmapMegha_Osi my sql productroadmap
Megha_Osi my sql productroadmap
 
NoSql Databases
NoSql DatabasesNoSql Databases
NoSql Databases
 
[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)
 
Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: Custom Application ...
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
 
CG_CS25010_Lecture
CG_CS25010_LectureCG_CS25010_Lecture
CG_CS25010_Lecture
 
NoSQL Basics and MongDB
NoSQL Basics and  MongDBNoSQL Basics and  MongDB
NoSQL Basics and MongDB
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
SQL & NoSQL
SQL & NoSQLSQL & NoSQL
SQL & NoSQL
 
Database synchronization prashant parit
Database synchronization   prashant paritDatabase synchronization   prashant parit
Database synchronization prashant parit
 
Nosql Introduction, Basics
Nosql Introduction, BasicsNosql Introduction, Basics
Nosql Introduction, Basics
 
MoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQLMoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQL
 
Flexible delivery options
Flexible delivery options Flexible delivery options
Flexible delivery options
 
Michael_Dickens
Michael_DickensMichael_Dickens
Michael_Dickens
 

Recently uploaded

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Recently uploaded (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Messaging Architectures with NoSQL Databases as Message Stores

  • 1. MESSAGING ARCHITECTURES WITH NOSQL DATABASES AS MESSAGE STORES JavaOne 2012 Conference (#JavaOne) Srini Penchikala (@srinip) 10.4.12
  • 2. GOALS OF THIS PRESENTATION  NoSQL databases to store messages with focus on EIP Patterns  Target Audience: Integration Architects and Developers  Redis, Oracle NoSQL, and MongoDB databases  Demos (Java application)  Not a NoSQL or Messaging intro presentation  Format:  50 min presentation & demos  10 min for Q&A 2
  • 3. WHO AM I  Software Architect  Co-author of Spring Roo in Action book  Editor at InfoQ.com  Background:  Financial services industry  Regulatory compliance (PCI & FISMA)  J2EE architecture model  Scrum for software development  Agile (v./and) Architecture 3
  • 4. QUICK POLL  Who is using EIP Patterns?  Spring Integration?  NoSQL?  Spring Data? 4
  • 5. TODAY’S DISCUSSION  Enterprise Integration Patterns  NoSQL databases  NoSQL as message stores  MongoDB / Redis / Oracle NoSQL Database  Spring Data  Spring Integration framework  Sample Java application  Best Practices  Conclusions 5
  • 6. MESSAGING  Advantages  Limitations  Message Loss  Performance  Security  Availability  Design Considerations* 6 *Main focus of this presentation
  • 7. MESSAGING PATTERNS  Message Store  Claim Check  Queue Channel  Aggregator  Resequencer  Control Bus*  Wire Tap* 7 URL: http://www.eaipatterns.com *System monitoring and management
  • 8. MESSAGE STORE  Store Messages in a persistent store (e.g. Database)  Why Message Store?  Performance  Availability 8 http://www.eaipatterns.com/MessageStore.html
  • 9. MESSAGE STORE USE CASES  Message buffering  Aggregator  Resequencer  Queue Channel  Message loss prevention  Claim Check 9
  • 10. CLAIM CHECK  Store message data in a persistent store and pass a Claim Check to subsequent components.  These components can use Claim Check to retrieve the stored information. 10 http://www.eaipatterns.com/StoreInLibrary.html
  • 11. PERSISTENCE  Key Value Data Store  Redis  Oracle NoSQL  Document Database  MongoDB  GemFire  JDBC  In-Memory 11
  • 12. NOSQL DATABASES  Redis  Redis-based MessageStore  Publish-Subscribe Messaging adapters  Oracle NoSQL Database  Distributed key-value database  ACID transactions  Administration via Web console or CLI  Use Cases: Online Display Advertising & Mobile Social Gaming  MongoDB  Document database 12 http://www.redis.io, http://www.mongodb.org http://www.oracle.com/technetwork/products/nosqldb/overview/index.html
  • 13. SPRING INTEGRATION  Extension of the Spring framework  Implements Enterprise Integration Patterns (EIP)  Lightweight messaging  Integration with external systems via declarative adapters  Separation of concerns 13 *http://www.springsource.org/spring-integration
  • 14. SPRING DATA  Spring applications that use new data access technologies  Non-relational databases  Map-reduce frameworks  Current Implementations:  Big Data (Apache Hadoop)  Data-Grid (GemFire)  Key Value Stores (Redis)  Document Stores (MongoDB)  Graph Databases (Neo4j)  Column Stores (Hbase) 14 *http://www.springsource.org/spring-data
  • 15. SPRING ROO  Rapid Java application development  Nice integration for Spring Integration and Spring Data frameworks 15 *http://www.springsource.org/spring-data
  • 16. MESSAGE STORE “STRATEGY”  Based on Strategy design pattern  MessageStore strategy  Used by QueueChannel and ClaimCheck patterns  MessageGroupStore strategy  Used by Aggregator and Resequencer patterns  Implementations  SimpleMessageStore (In-memory, Map-based)  JdbcMessageStore (uses a relational database via JDBC)  NoSQL Data Store 16
  • 17. MESSAGE STORES 17 Message Store Simple (In-Memory)* NoSQLJDBC Redis* MongoDB* Oracle NoSQL* GemFire *Covered in the sample application demos
  • 18. SAMPLE APPLICATION  Oracle NoSQL Database  Redis  Spring Integration  Spring Data  JUnit 18 *Code will be posted on Github
  • 19. DEMO APPLICATION - USE CASE 1 (CLAIM CHECK) 19 Message Header Enricher Message Store (In-Memory) Claim Check (In) Queue Channel Transformer Claim Check (Out) Message Store (MongoDB)
  • 20. MESSAGE STORE DEMO 1  In Memory Message Store  MongoDB 20
  • 21. DEMO APPLICATION - USE CASE 2 (AGGREGATOR) 21 Message Aggregator Message Store (Redis) Queue Channel Transformer Message Store (Oracle NoSQL)
  • 23. MESSAGE STORE DEMO 2  Redis Demo 23
  • 24. CUSTOM MESSAGE STORE IMPLEMENTATION  MessageStore interface  CustomOracleNoSqlMessageStore class 24
  • 25. MESSAGE STORE DEMO 3  Oracle NoSQL Message Store 25
  • 26. MESSAGE STORE LIMITATIONS  When using JdbcMessageStore, only Serializable data is persisted by default  Different instance of some Spring Bean is returned upon deserialization for headers that represent certain types of data  Temporary Reply Channel issue 26
  • 27. CONCLUSIONS  Message Persistence  Message Store pattern  Claim Check  NoSQL and Messaging  “One Size Fits All” fits nothing 27
  • 28. RESOURCES - BOOKS 28 Enterprise Integration Patterns (http://eaipatterns.com) Spring Integration in Action (http://www.manning.com/fisher) Spring Roo in Action (http://www.manning.com/rimple)
  • 29. RESOURCES  Enterprise Integration Patterns (http://www.eaipatterns.com)  Spring Integration (http://static.springsource.org/spring- integration/reference/html)  Spring Integration Support for Redis (http://static.springsource.org/spring- integration/reference/html/redis.html)  Oracle NoSQL Database (http://www.oracle.com/technetwork/products/nosqldb/overview/index.html)  http://blog.codecentric.de/en/2012/04/spring-data-redis/  Message Store (http://www.eaipatterns.com/MessageStore.html)  Redis (http://redis.io/topics/pubsub)  MongoDB  Spring Data  Spring Data Redis  Sample Application on Github 29
  • 30. THANK YOU  Contact Information  http://www.infoq.com/author/Srini-Penchikala  srinipenchikala@gmail.com  @srinip  http://srinip2007.blogspot.com  Spring Roo in Action Book  Questions? 30
  • 32. MESSAGING GATEWAYS  JMS  AMQP  File  FTP/SFTP  HTTP (REST)  WS (SOAP/POX)  JDBC  Twitter  MongoDB  Redis 32
  • 33. CONTROL BUS  Administer a messaging system distributed across multiple platforms  Uses same messaging mechanism used by application data, but uses separate channels to transmit data for the management of message flow components 33 http://www.eaipatterns.com/StoreInLibrary.html
  • 34. WIRE TAP  Inspects messages that travel on a point-to-point channel  Recipient List into the channel that publishes each incoming message to the main channel and a secondary channel 34 http://www.eaipatterns.com/WireTap.html
  • 35. XML CONFIGURATION OF MESSAGE STORE <bean id="redisMessageStore" class="org.springframework.integration.redis.store.RedisMess ageStore"> <constructor-arg ref="redisConnectionFactory"/> </bean> <int:channel id="somePersistentQueueChannel"> <int:queue message-store="redisMessageStore"/> <int:channel> <int:aggregator input-channel="inputChannel" output- channel="outputChannel" message-store="redisMessageStore"/> 35