SlideShare a Scribd company logo
1 of 30
© 2014 Impetus Technologies - Confidential1
Impetus Technologies Inc.
Why we built Kundera - The
Polyglot Object Mapper for
NoSQLs?
Vivek Shrivastava
software architect
© 2014 Impetus Technologies - Confidential2
Evolution of Data
© 2014 Impetus Technologies - Confidential3
10 LET A = 1
20 LET B = 2
30 LET C = A + B
40 PRINT C
50 END
First Introduction To Data
© 2014 Impetus Technologies - Confidential4
Relational Databases
• Tables
• Relations
• SQL
• Transactions
• Normalization
© 2014 Impetus Technologies - Confidential5
Current Landscape
http://blogs.the451group.com/information_management/2014/03/18/updated-data-platforms-landscape-map-february-2014/
© 2014 Impetus Technologies - Confidential6
Infrastructure
Datastores Designed To Support Partitions
© 2014 Impetus Technologies - Confidential7
Relationships / Transaction
Datastores Designed To Support Aggregates
Item 1
Order
Item 2
© 2014 Impetus Technologies - Confidential8
Consistency
DC1
N1
DC2
N2
DC3
N3
Transactional
Consistency
Replication
Consistency
© 2014 Impetus Technologies - Confidential9
Consistency
Availabilit
y
Partition
Tolerance
Not
Possibl
e
CAP Theorem
Datastores Designed To Support Eventual Consistency
© 2014 Impetus Technologies - Confidential10
Shape
Datastores Designed To Support Richer Data Models
1 David 34
2 John 46
3 Lisa 32
4 Steve 46
5 JP 49
Table
s
Graph Columnar
Key-Value Document
© 2014 Impetus Technologies - Confidential11
Cluster/Cloud Friendly
Schema less Aggregates With
Redefined Transactions
Eventual Consistency
Richer Data Model With Minimum
Impedance Mismatch
NoSQL
Finally
© 2014 Impetus Technologies - Confidential12
Emergence of a Polyglot World
© 2014 Impetus Technologies - Confidential13
A Single Application Using Multiple Data
Storage Technologies
Polyglot Persistence
© 2014 Impetus Technologies - Confidential14
Data
streams
Cassandra, HBase
User
information
RDBMS
In memory
cache/session
Redis
Orders /
Articles /
Tickets
MongoDB, Couchbase
User Social
graph
Neo4J, Titan
Batch processing &
analytics
Hadoop, Spark
Polyglot World
© 2014 Impetus Technologies - Confidential15
Decision Implementation
Is It Easy?
No. It’s A Bumpy Ride.
© 2014 Impetus Technologies - Confidential16
Decision
Degree of
Polyglot?
• X% RDBMS
• Y% NoSQL
Composition of
Polyglot?
• Datastores?
Type of Polyglot?
• Weak
• Strong
• Don’t choose for pride, passion
and trends
• Don’t start with more than 1
NoSQL store
• Don’t start with 100% uses
cases
© 2014 Impetus Technologies - Confidential17
Degree of Polyglot
Scale
Relational
Behavior
RDBMS Non-RDBMS
Low Any 100% 0%
High High 90% 10% (New SQL)
High Moderate 75%
25% (NoSQL)
High Low 50%
50-100% (NoSQL)
© 2014 Impetus Technologies - Confidential18
RDBMS NoSQL NewSQL
Datastore + Cache Local + Global Client + Server
Composition of Polyglot - Forms
© 2014 Impetus Technologies - Confidential19
Composition of Polyglot - Datastores
Neo4j, Titan,
Objectivity
Cassandra
, HBase,
BigTable
Oraclekv,
Redis, Riak
MongoDB,
Couch
base
Graph Columnar
Key-value Document
Data Model / Queries
Consistency / Performance
Architecture / Non-Functional
© 2014 Impetus Technologies - Confidential20
Operating In The Polyglot World
© 2014 Impetus Technologies - Confidential21
Weak Polyglot
DataLayer
Reporting Lane
(MySQL)
Orders Lane
(MongoDB)
Log Lane
(Cassandra)
ServiceLayer
WebLayer
© 2014 Impetus Technologies - Confidential22
Strong Polyglot
DataLayer
Polyglot
Mapper
Reports
(MySQL)
+
Orders
(MongoDB)
+
Logs
(Cassandra)
ServiceLayer
WebLayer
© 2014 Impetus Technologies - Confidential23
Harmonization
Query /
Indexing
Operational
Mapping /
Interaction
CRUD
Atomicity
Switching /
Migrating
© 2014 Impetus Technologies - Confidential24
And We Built Kundera
© 2014 Impetus Technologies - Confidential25
What It Is?
?
Object Mapper
• RDBMS
• NoSQLs (Cassandra,
MongoDB, Hbase,
Redis, Oracle
NoSQL, CouchDB,
Neo4j)
JPA Compliant
Polyglot
© 2014 Impetus Technologies - Confidential26
JPA
Customer
(MySQL)
Order 1 (MongoDB)
{Item11, Item12}
Order 2 (MongoDB)
{Item21, Item22}
© 2014 Impetus Technologies - Confidential27
<!-- Persistence unit for Cassandra persistence -->
<persistence-unit name=“cassandrapu">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<class>com.impetus.kvapps.entities.Order</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="kundera.nodes" value="localhost" />
<property name="kundera.port" value="9160" />
<property name="kundera.keyspace" value=“orderstore" />
<property name="kundera.dialect" value="cassandra" />
<property name="kundera.client.lookup.class"
value="com.impetus.client.cassandra.thrift.ThriftClientFactory" />
<property name="kundera.ddl.auto.prepare" value="create"
/>
<property name="index.home.dir" value="lucene"/>
</properties>
</persistence-unit>
<!-- Persistence unit for Mongo persistence -->
<persistence-unit name=“mongopu">
<provider>com.impetus.kundera.KunderaPersistence</provider
>
<class>com.impetus.kvapps.entities.Invoice</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="kundera.nodes" value="localhost" />
<property name="kundera.port" value="27017" />
<property name="kundera.keyspace" value=“invoicestore" />
<property name="kundera.dialect" value="mongodb" />
<property name="kundera.client.lookup.class"
value="com.impetus.client.mongodb.MongoDBClientFactory"
/>
<property name="kundera.ddl.auto.prepare" value="create" />
</properties>
</persistence-unit>
//create entity manager factory.
EntityManagerFactory emf = Persistence.createEntityManagerFactory(“cassandrapu,mongopu”, properties);
EntityManager em = emf.createEntityManager();
…..
em.persist(order);
Configuration : Persistence.xml
Persist Data
At Its Simplest
© 2014 Impetus Technologies - Confidential28
Supports all major
datastores and
Extensible
Polyglot CRUD / Query
/ Object Mapping
Schema Generation /
Atomicity / Lazy and
Eager fetching
REST Based Access
Interceptors / Events /
Caching / Connection
Pool
JPQL / Native Query /
Fallback Indexing
Flexibility
Additionally
© 2014 Impetus Technologies - Confidential29
Commitment to the Polyglot
Kundera.js
(Polyglot
JavaScript
Persister)
Polyglot Data
Viewer
Support for more
datastores
© 2014 Impetus Technologies - Confidential30
Thank you.
Questions??
https://github.com/impetus-opensource/Kundera

More Related Content

What's hot

What's New in RTView Core 6.5
What's New in RTView Core 6.5 What's New in RTView Core 6.5
What's New in RTView Core 6.5 SL Corporation
 
Data in the Cloud Crash Course
Data in the Cloud Crash CourseData in the Cloud Crash Course
Data in the Cloud Crash CourseDataWorks Summit
 
Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...
Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...
Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...InfluxData
 
From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.
From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.
From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.Database & Technology s.r.l.
 
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...InfluxData
 
Building Fast Applications for Streaming Data
Building Fast Applications for Streaming DataBuilding Fast Applications for Streaming Data
Building Fast Applications for Streaming Datafreshdatabos
 
IBM Power leading Cognitive Systems
IBM Power leading Cognitive SystemsIBM Power leading Cognitive Systems
IBM Power leading Cognitive SystemsHugo Blanco
 
Building Audi’s enterprise big data platform
Building Audi’s enterprise big data platformBuilding Audi’s enterprise big data platform
Building Audi’s enterprise big data platformDataWorks Summit
 
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionMicrosoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionTravis Wright
 
OpenStack Telco Cloud Challenges, David Fick, Oracle
OpenStack Telco Cloud Challenges, David Fick, OracleOpenStack Telco Cloud Challenges, David Fick, Oracle
OpenStack Telco Cloud Challenges, David Fick, OracleSriram Subramanian
 
Implementing API-led Cloud-native apps on OCI
Implementing API-led Cloud-native apps on OCIImplementing API-led Cloud-native apps on OCI
Implementing API-led Cloud-native apps on OCISven Bernhardt
 
Tracking crime as it occurs with apache phoenix, apache hbase and apache nifi
Tracking crime as it occurs with apache phoenix, apache hbase and apache nifiTracking crime as it occurs with apache phoenix, apache hbase and apache nifi
Tracking crime as it occurs with apache phoenix, apache hbase and apache nifiTimothy Spann
 
Gain Deep Visibility into APIs and Integrations with Anypoint Monitoring
Gain Deep Visibility into APIs and Integrations with Anypoint MonitoringGain Deep Visibility into APIs and Integrations with Anypoint Monitoring
Gain Deep Visibility into APIs and Integrations with Anypoint MonitoringInfluxData
 
Moving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics CloudMoving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics CloudEdelweiss Kammermann
 
Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.Altoros
 
Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...
Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...
Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...InfluxData
 
Pivotal Big Data Suite: A Technical Overview
Pivotal Big Data Suite: A Technical OverviewPivotal Big Data Suite: A Technical Overview
Pivotal Big Data Suite: A Technical OverviewVMware Tanzu
 
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...InfluxData
 
Why nfv and digital transformation projects fail!
Why nfv and digital transformation projects fail! Why nfv and digital transformation projects fail!
Why nfv and digital transformation projects fail! Cloudify Community
 
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3Holger Mueller
 

What's hot (20)

What's New in RTView Core 6.5
What's New in RTView Core 6.5 What's New in RTView Core 6.5
What's New in RTView Core 6.5
 
Data in the Cloud Crash Course
Data in the Cloud Crash CourseData in the Cloud Crash Course
Data in the Cloud Crash Course
 
Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...
Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...
Martin Moucka [Red Hat] | How Red Hat Uses gNMI, Telegraf and InfluxDB to Gai...
 
From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.
From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.
From Oracle Warehouse Builder to Oracle Data Integrator fast and safe.
 
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
 
Building Fast Applications for Streaming Data
Building Fast Applications for Streaming DataBuilding Fast Applications for Streaming Data
Building Fast Applications for Streaming Data
 
IBM Power leading Cognitive Systems
IBM Power leading Cognitive SystemsIBM Power leading Cognitive Systems
IBM Power leading Cognitive Systems
 
Building Audi’s enterprise big data platform
Building Audi’s enterprise big data platformBuilding Audi’s enterprise big data platform
Building Audi’s enterprise big data platform
 
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionMicrosoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
 
OpenStack Telco Cloud Challenges, David Fick, Oracle
OpenStack Telco Cloud Challenges, David Fick, OracleOpenStack Telco Cloud Challenges, David Fick, Oracle
OpenStack Telco Cloud Challenges, David Fick, Oracle
 
Implementing API-led Cloud-native apps on OCI
Implementing API-led Cloud-native apps on OCIImplementing API-led Cloud-native apps on OCI
Implementing API-led Cloud-native apps on OCI
 
Tracking crime as it occurs with apache phoenix, apache hbase and apache nifi
Tracking crime as it occurs with apache phoenix, apache hbase and apache nifiTracking crime as it occurs with apache phoenix, apache hbase and apache nifi
Tracking crime as it occurs with apache phoenix, apache hbase and apache nifi
 
Gain Deep Visibility into APIs and Integrations with Anypoint Monitoring
Gain Deep Visibility into APIs and Integrations with Anypoint MonitoringGain Deep Visibility into APIs and Integrations with Anypoint Monitoring
Gain Deep Visibility into APIs and Integrations with Anypoint Monitoring
 
Moving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics CloudMoving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics Cloud
 
Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.
 
Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...
Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...
Bhagvan Kommadi [Value Momentum] | TeleHealth Platform: DevOps-Based Progress...
 
Pivotal Big Data Suite: A Technical Overview
Pivotal Big Data Suite: A Technical OverviewPivotal Big Data Suite: A Technical Overview
Pivotal Big Data Suite: A Technical Overview
 
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
 
Why nfv and digital transformation projects fail!
Why nfv and digital transformation projects fail! Why nfv and digital transformation projects fail!
Why nfv and digital transformation projects fail!
 
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
 

Similar to Why we built Kundera - The Polyglot Object Mapper for NoSQLs?

Development on cloud_paa_s_sddc_mkim_20141216_final
Development on cloud_paa_s_sddc_mkim_20141216_finalDevelopment on cloud_paa_s_sddc_mkim_20141216_final
Development on cloud_paa_s_sddc_mkim_20141216_finalminseok kim
 
Development on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDCDevelopment on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDCseungdon Choi
 
How Experian increased insights with Hadoop
How Experian increased insights with HadoopHow Experian increased insights with Hadoop
How Experian increased insights with HadoopPrecisely
 
Big Data Infrastructure
Big Data InfrastructureBig Data Infrastructure
Big Data InfrastructureTrivadis
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Cécile Poyet
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Hortonworks
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Cécile Poyet
 
Data Quality in the Data Hub with RedPointGlobal
Data Quality in the Data Hub with RedPointGlobalData Quality in the Data Hub with RedPointGlobal
Data Quality in the Data Hub with RedPointGlobalCaserta
 
Achieving Target State Architecture in NetApp IT
Achieving Target State Architecture in NetApp ITAchieving Target State Architecture in NetApp IT
Achieving Target State Architecture in NetApp ITNetApp
 
Achieving a Target State Architecture
Achieving a Target State ArchitectureAchieving a Target State Architecture
Achieving a Target State ArchitectureRuben Klein Haneveld
 
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...Michael Allen
 
Developing a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC EventDeveloping a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC EventNexon Asia Pacific
 
Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)
Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)
Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)Jeffrey T. Pollock
 
RapidScale Product Training
RapidScale Product TrainingRapidScale Product Training
RapidScale Product TrainingRapidScale
 
Hadoop and the Future of SQL: Using BI Tools with Big Data
Hadoop and the Future of SQL: Using BI Tools with Big DataHadoop and the Future of SQL: Using BI Tools with Big Data
Hadoop and the Future of SQL: Using BI Tools with Big DataSenturus
 
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)jeckels
 
Cloud Services Integration Automation-External
Cloud Services Integration Automation-ExternalCloud Services Integration Automation-External
Cloud Services Integration Automation-ExternalSukumar Nayak
 
Self-Service BI for big data applications using Apache Drill (Big Data Amster...
Self-Service BI for big data applications using Apache Drill (Big Data Amster...Self-Service BI for big data applications using Apache Drill (Big Data Amster...
Self-Service BI for big data applications using Apache Drill (Big Data Amster...Dataconomy Media
 

Similar to Why we built Kundera - The Polyglot Object Mapper for NoSQLs? (20)

Development on cloud_paa_s_sddc_mkim_20141216_final
Development on cloud_paa_s_sddc_mkim_20141216_finalDevelopment on cloud_paa_s_sddc_mkim_20141216_final
Development on cloud_paa_s_sddc_mkim_20141216_final
 
Development on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDCDevelopment on Cloud,PaaS and SDDC
Development on Cloud,PaaS and SDDC
 
How Experian increased insights with Hadoop
How Experian increased insights with HadoopHow Experian increased insights with Hadoop
How Experian increased insights with Hadoop
 
Big Data Infrastructure
Big Data InfrastructureBig Data Infrastructure
Big Data Infrastructure
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It!
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It!
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It!
 
Vaibhav_Rane
Vaibhav_RaneVaibhav_Rane
Vaibhav_Rane
 
Data Quality in the Data Hub with RedPointGlobal
Data Quality in the Data Hub with RedPointGlobalData Quality in the Data Hub with RedPointGlobal
Data Quality in the Data Hub with RedPointGlobal
 
Achieving Target State Architecture in NetApp IT
Achieving Target State Architecture in NetApp ITAchieving Target State Architecture in NetApp IT
Achieving Target State Architecture in NetApp IT
 
Achieving a Target State Architecture
Achieving a Target State ArchitectureAchieving a Target State Architecture
Achieving a Target State Architecture
 
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...
 
Developing a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC EventDeveloping a cloud strategy - Presentation Nexon ABC Event
Developing a cloud strategy - Presentation Nexon ABC Event
 
Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)
Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)
Unlocking Big Data Silos in the Enterprise or the Cloud (Con7877)
 
RapidScale Product Training
RapidScale Product TrainingRapidScale Product Training
RapidScale Product Training
 
What's New in Moab 8.0
What's New in Moab 8.0What's New in Moab 8.0
What's New in Moab 8.0
 
Hadoop and the Future of SQL: Using BI Tools with Big Data
Hadoop and the Future of SQL: Using BI Tools with Big DataHadoop and the Future of SQL: Using BI Tools with Big Data
Hadoop and the Future of SQL: Using BI Tools with Big Data
 
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
 
Cloud Services Integration Automation-External
Cloud Services Integration Automation-ExternalCloud Services Integration Automation-External
Cloud Services Integration Automation-External
 
Self-Service BI for big data applications using Apache Drill (Big Data Amster...
Self-Service BI for big data applications using Apache Drill (Big Data Amster...Self-Service BI for big data applications using Apache Drill (Big Data Amster...
Self-Service BI for big data applications using Apache Drill (Big Data Amster...
 

Recently uploaded

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Why we built Kundera - The Polyglot Object Mapper for NoSQLs?

  • 1. © 2014 Impetus Technologies - Confidential1 Impetus Technologies Inc. Why we built Kundera - The Polyglot Object Mapper for NoSQLs? Vivek Shrivastava software architect
  • 2. © 2014 Impetus Technologies - Confidential2 Evolution of Data
  • 3. © 2014 Impetus Technologies - Confidential3 10 LET A = 1 20 LET B = 2 30 LET C = A + B 40 PRINT C 50 END First Introduction To Data
  • 4. © 2014 Impetus Technologies - Confidential4 Relational Databases • Tables • Relations • SQL • Transactions • Normalization
  • 5. © 2014 Impetus Technologies - Confidential5 Current Landscape http://blogs.the451group.com/information_management/2014/03/18/updated-data-platforms-landscape-map-february-2014/
  • 6. © 2014 Impetus Technologies - Confidential6 Infrastructure Datastores Designed To Support Partitions
  • 7. © 2014 Impetus Technologies - Confidential7 Relationships / Transaction Datastores Designed To Support Aggregates Item 1 Order Item 2
  • 8. © 2014 Impetus Technologies - Confidential8 Consistency DC1 N1 DC2 N2 DC3 N3 Transactional Consistency Replication Consistency
  • 9. © 2014 Impetus Technologies - Confidential9 Consistency Availabilit y Partition Tolerance Not Possibl e CAP Theorem Datastores Designed To Support Eventual Consistency
  • 10. © 2014 Impetus Technologies - Confidential10 Shape Datastores Designed To Support Richer Data Models 1 David 34 2 John 46 3 Lisa 32 4 Steve 46 5 JP 49 Table s Graph Columnar Key-Value Document
  • 11. © 2014 Impetus Technologies - Confidential11 Cluster/Cloud Friendly Schema less Aggregates With Redefined Transactions Eventual Consistency Richer Data Model With Minimum Impedance Mismatch NoSQL Finally
  • 12. © 2014 Impetus Technologies - Confidential12 Emergence of a Polyglot World
  • 13. © 2014 Impetus Technologies - Confidential13 A Single Application Using Multiple Data Storage Technologies Polyglot Persistence
  • 14. © 2014 Impetus Technologies - Confidential14 Data streams Cassandra, HBase User information RDBMS In memory cache/session Redis Orders / Articles / Tickets MongoDB, Couchbase User Social graph Neo4J, Titan Batch processing & analytics Hadoop, Spark Polyglot World
  • 15. © 2014 Impetus Technologies - Confidential15 Decision Implementation Is It Easy? No. It’s A Bumpy Ride.
  • 16. © 2014 Impetus Technologies - Confidential16 Decision Degree of Polyglot? • X% RDBMS • Y% NoSQL Composition of Polyglot? • Datastores? Type of Polyglot? • Weak • Strong • Don’t choose for pride, passion and trends • Don’t start with more than 1 NoSQL store • Don’t start with 100% uses cases
  • 17. © 2014 Impetus Technologies - Confidential17 Degree of Polyglot Scale Relational Behavior RDBMS Non-RDBMS Low Any 100% 0% High High 90% 10% (New SQL) High Moderate 75% 25% (NoSQL) High Low 50% 50-100% (NoSQL)
  • 18. © 2014 Impetus Technologies - Confidential18 RDBMS NoSQL NewSQL Datastore + Cache Local + Global Client + Server Composition of Polyglot - Forms
  • 19. © 2014 Impetus Technologies - Confidential19 Composition of Polyglot - Datastores Neo4j, Titan, Objectivity Cassandra , HBase, BigTable Oraclekv, Redis, Riak MongoDB, Couch base Graph Columnar Key-value Document Data Model / Queries Consistency / Performance Architecture / Non-Functional
  • 20. © 2014 Impetus Technologies - Confidential20 Operating In The Polyglot World
  • 21. © 2014 Impetus Technologies - Confidential21 Weak Polyglot DataLayer Reporting Lane (MySQL) Orders Lane (MongoDB) Log Lane (Cassandra) ServiceLayer WebLayer
  • 22. © 2014 Impetus Technologies - Confidential22 Strong Polyglot DataLayer Polyglot Mapper Reports (MySQL) + Orders (MongoDB) + Logs (Cassandra) ServiceLayer WebLayer
  • 23. © 2014 Impetus Technologies - Confidential23 Harmonization Query / Indexing Operational Mapping / Interaction CRUD Atomicity Switching / Migrating
  • 24. © 2014 Impetus Technologies - Confidential24 And We Built Kundera
  • 25. © 2014 Impetus Technologies - Confidential25 What It Is? ? Object Mapper • RDBMS • NoSQLs (Cassandra, MongoDB, Hbase, Redis, Oracle NoSQL, CouchDB, Neo4j) JPA Compliant Polyglot
  • 26. © 2014 Impetus Technologies - Confidential26 JPA Customer (MySQL) Order 1 (MongoDB) {Item11, Item12} Order 2 (MongoDB) {Item21, Item22}
  • 27. © 2014 Impetus Technologies - Confidential27 <!-- Persistence unit for Cassandra persistence --> <persistence-unit name=“cassandrapu"> <provider>com.impetus.kundera.KunderaPersistence</provider> <class>com.impetus.kvapps.entities.Order</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="kundera.nodes" value="localhost" /> <property name="kundera.port" value="9160" /> <property name="kundera.keyspace" value=“orderstore" /> <property name="kundera.dialect" value="cassandra" /> <property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.thrift.ThriftClientFactory" /> <property name="kundera.ddl.auto.prepare" value="create" /> <property name="index.home.dir" value="lucene"/> </properties> </persistence-unit> <!-- Persistence unit for Mongo persistence --> <persistence-unit name=“mongopu"> <provider>com.impetus.kundera.KunderaPersistence</provider > <class>com.impetus.kvapps.entities.Invoice</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="kundera.nodes" value="localhost" /> <property name="kundera.port" value="27017" /> <property name="kundera.keyspace" value=“invoicestore" /> <property name="kundera.dialect" value="mongodb" /> <property name="kundera.client.lookup.class" value="com.impetus.client.mongodb.MongoDBClientFactory" /> <property name="kundera.ddl.auto.prepare" value="create" /> </properties> </persistence-unit> //create entity manager factory. EntityManagerFactory emf = Persistence.createEntityManagerFactory(“cassandrapu,mongopu”, properties); EntityManager em = emf.createEntityManager(); ….. em.persist(order); Configuration : Persistence.xml Persist Data At Its Simplest
  • 28. © 2014 Impetus Technologies - Confidential28 Supports all major datastores and Extensible Polyglot CRUD / Query / Object Mapping Schema Generation / Atomicity / Lazy and Eager fetching REST Based Access Interceptors / Events / Caching / Connection Pool JPQL / Native Query / Fallback Indexing Flexibility Additionally
  • 29. © 2014 Impetus Technologies - Confidential29 Commitment to the Polyglot Kundera.js (Polyglot JavaScript Persister) Polyglot Data Viewer Support for more datastores
  • 30. © 2014 Impetus Technologies - Confidential30 Thank you. Questions?? https://github.com/impetus-opensource/Kundera