Bootiful Mongo @ Tech Jam, Pune

Naresh Jain
Naresh JainTech Startup Founder at ConfEngine
Paul Samargia and Steve Finck
03/12/2015
How do you get Bootiful?
• Start - start.spring.io
• IO – It’s not you, use IO
• Boot - you know you want to!
• Data – It’s necessary for the REST of the show
Page 2
start.spring.io
• Use this website to create a base Spring-enabled Maven/Gradle
project
• Once you download the .zip, you’ll see you get:
• pom.xml/build.gradle
• Spring-dependencies utilizing IO Platform
• src/main/java, src/main/resources & src/test/java directory structure
• Spring-boot enabled, annotation based @Configuration class
• JUnit context-aware test case
Page 3
IO Platform
• Cohesive, Versioned Platform of all Spring projects and
dependencies
• Aims to reduce version dependency nightmares within Spring
projects and transitive dependencies
• Just think of it as a BOM for all Spring projects and their
dependencies
• Example of versioning it wraps into a single versioned product:
– http://docs.spring.io/platform/docs/1.1.1.RELEASE/reference/html
single/#appendix-dependency-versions
Page 4
Boot
• Easily create ‘runnable’ Spring applications
• Embed Tomcat or Jetty directly (no need to deploy WAR files)
• Provides ‘starter’ POMs to simply Maven/Gradle configuration
• Provides production-ready features for metrics, health checks,
and external configurations
• Absolutely no code generation or requirement for XML
• Actuator
– Provides JMX/REST endpoints for monitoring
– A list of them can be found at: http://docs.spring.io/spring-
boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-
ready-endpoints
Page 5
Data / Data REST
• Easy to use data access for many different technologies
(includes relational, non-relational, map reduce and cloud
data services)
• Query definition can be derived from method name
– Examples: http://docs.spring.io/spring-
data/jpa/docs/1.7.0.RELEASE/reference/html/#jpa.query-
methods
• Single annotation, @RestRepositoryRestResource, on your
Repository provides REST support for CRUD options (including
custom-defined methods)
• REST calls include validation support using JSR-303
• REST uses HAL to render responses
(https://tools.ietf.org/html/draft-kelly-json-hal-06)
Page 6
Page 7
What is MongoDB?
• NoSQL Database
• Document Store (JSON / BSON)
• Databases
• Collections
• Chunks
• Types
– Object
– Date
– String
– Boolean
– …
Page 8
Mongod and MongoVUE
Page 9
Remember This Guy?
Page 10
He was right! … but he’s still an idiot!
Brewers CAP Theorem
Page 11
Sort of!
Scalability? Backups? Disaster Recovery?
Page 12
Page 13
Server 3
Server 2
Server 1 Config
Server
Shard 1
Config
Server
Config
Server
Shard 1
Shard 1
Shard 2
Shard 2
Shard 2
Router 1
Router 2
The Aliens Are Invading…
Page 14
Remember Chemistry?
Page 15
Tying It All Together
Page 16
References
• Legit
– http://blog.mongodb.org/post/475279604/on-distributed-
consistency-part-1
– http://stevefinck.blogspot.com/2014/10/setting-up-mongodb-
cluster.html
– http://www.dataversity.net/acid-vs-base-the-shifting-ph-of-
database-transaction-processing/
– http://www.johndcook.com/blog/2009/07/06/brewer-cap-
theorem-base/
– https://www.digitalocean.com/community/tutorials/a-
comparison-of-nosql-database-management-systems-and-
models
• Humor Me
– http://www.youtube.com/watch?v=b2F-DItXtZs
– http://en.wikipedia.org/wiki/All_your_base_are_belong_to_us
Page 17
1 of 17

Recommended

Unleashing the Power of Automated Refactoring with JDT by
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTNaresh Jain
623 views63 slides
The Eclipse Way by
The Eclipse WayThe Eclipse Way
The Eclipse WayNaresh Jain
622 views25 slides
Towards FutureOps: Stable, Repeatable environments from Dev to Prod by
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdNaresh Jain
671 views142 slides
Problem Solving Techniques For Evolutionary Design by
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignNaresh Jain
842 views40 slides
Agile India 2019 Conference Welcome Note by
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteNaresh Jain
749 views25 slides
Organizational Resilience by
Organizational ResilienceOrganizational Resilience
Organizational ResilienceNaresh Jain
1.4K views79 slides

More Related Content

More from Naresh Jain

Agile India 2018 Conference by
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
701 views21 slides
Agile India 2018 Conference by
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
818 views90 slides
Agile India 2018 Conference by
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
817 views89 slides
Pilgrim's Progress to the Promised Land by Robert Virding by
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingNaresh Jain
385 views37 slides
Concurrent languages are Functional by Francesco Cesarini by
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniNaresh Jain
497 views34 slides
Erlang from behing the trenches by Francesco Cesarini by
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniNaresh Jain
442 views38 slides

More from Naresh Jain(20)

Agile India 2018 Conference by Naresh Jain
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain701 views
Agile India 2018 Conference by Naresh Jain
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain818 views
Agile India 2018 Conference by Naresh Jain
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain817 views
Pilgrim's Progress to the Promised Land by Robert Virding by Naresh Jain
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
Naresh Jain385 views
Concurrent languages are Functional by Francesco Cesarini by Naresh Jain
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
Naresh Jain497 views
Erlang from behing the trenches by Francesco Cesarini by Naresh Jain
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
Naresh Jain442 views
Anatomy of an eCommerce Search Engine by Mayur Datar by Naresh Jain
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
Naresh Jain1.5K views
Setting up Continuous Delivery Culture for a Large Scale Mobile App by Naresh Jain
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Naresh Jain641 views
Value Driven Development by Dave Thomas by Naresh Jain
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
Naresh Jain2.4K views
No Silver Bullets in Functional Programming by Brian McKenna by Naresh Jain
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
Naresh Jain774 views
Functional Programming Conference 2016 by Naresh Jain
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
Naresh Jain567 views
Agile India 2017 Conference by Naresh Jain
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
Naresh Jain25.5K views
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim by Naresh Jain
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Naresh Jain1.3K views
MVP Design Hacks by Naresh Jain
MVP Design HacksMVP Design Hacks
MVP Design Hacks
Naresh Jain1.8K views
Functional Conf 2015 by Naresh Jain
Functional Conf 2015Functional Conf 2015
Functional Conf 2015
Naresh Jain963 views
Agile India 2016 Conference by Naresh Jain
Agile India 2016 ConferenceAgile India 2016 Conference
Agile India 2016 Conference
Naresh Jain62.6K views
Test Driving a jQuery Plugin by Naresh Jain
Test Driving a jQuery PluginTest Driving a jQuery Plugin
Test Driving a jQuery Plugin
Naresh Jain1.7K views
Making Sense Through Action by Dave Snowden by Naresh Jain
Making Sense Through Action by Dave SnowdenMaking Sense Through Action by Dave Snowden
Making Sense Through Action by Dave Snowden
Naresh Jain2K views
Oh Oh To Functional by Naresh Jain
Oh Oh To FunctionalOh Oh To Functional
Oh Oh To Functional
Naresh Jain1.7K views
Techniques for Effectively Slicing User Stories by Naresh Jain by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
Naresh Jain10.6K views

Recently uploaded

Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ... by
Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ...Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ...
Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ...AltinKaradagli
12 views16 slides
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc... by
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...csegroupvn
5 views210 slides
Effect of deep chemical mixing columns on properties of surrounding soft clay... by
Effect of deep chemical mixing columns on properties of surrounding soft clay...Effect of deep chemical mixing columns on properties of surrounding soft clay...
Effect of deep chemical mixing columns on properties of surrounding soft clay...AltinKaradagli
9 views10 slides
Generative AI Models & Their Applications by
Generative AI Models & Their ApplicationsGenerative AI Models & Their Applications
Generative AI Models & Their ApplicationsSN
8 views1 slide
What is Unit Testing by
What is Unit TestingWhat is Unit Testing
What is Unit TestingSadaaki Emura
24 views25 slides
Design_Discover_Develop_Campaign.pptx by
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptxShivanshSeth6
32 views20 slides

Recently uploaded(20)

Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ... by AltinKaradagli
Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ...Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ...
Investigation of Physicochemical Changes of Soft Clay around Deep Geopolymer ...
AltinKaradagli12 views
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc... by csegroupvn
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
csegroupvn5 views
Effect of deep chemical mixing columns on properties of surrounding soft clay... by AltinKaradagli
Effect of deep chemical mixing columns on properties of surrounding soft clay...Effect of deep chemical mixing columns on properties of surrounding soft clay...
Effect of deep chemical mixing columns on properties of surrounding soft clay...
AltinKaradagli9 views
Generative AI Models & Their Applications by SN
Generative AI Models & Their ApplicationsGenerative AI Models & Their Applications
Generative AI Models & Their Applications
SN8 views
Design_Discover_Develop_Campaign.pptx by ShivanshSeth6
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptx
ShivanshSeth632 views
Control Systems Feedback.pdf by LGGaming5
Control Systems Feedback.pdfControl Systems Feedback.pdf
Control Systems Feedback.pdf
LGGaming56 views
Design of machine elements-UNIT 3.pptx by gopinathcreddy
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptx
gopinathcreddy32 views
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx by lwang78
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
lwang7883 views
Update 42 models(Diode/General ) in SPICE PARK(DEC2023) by Tsuyoshi Horigome
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
Instrumentation & Control Lab Manual.pdf by NTU Faisalabad
Instrumentation & Control Lab Manual.pdfInstrumentation & Control Lab Manual.pdf
Instrumentation & Control Lab Manual.pdf
NTU Faisalabad 6 views

Bootiful Mongo @ Tech Jam, Pune

  • 1. Paul Samargia and Steve Finck 03/12/2015
  • 2. How do you get Bootiful? • Start - start.spring.io • IO – It’s not you, use IO • Boot - you know you want to! • Data – It’s necessary for the REST of the show Page 2
  • 3. start.spring.io • Use this website to create a base Spring-enabled Maven/Gradle project • Once you download the .zip, you’ll see you get: • pom.xml/build.gradle • Spring-dependencies utilizing IO Platform • src/main/java, src/main/resources & src/test/java directory structure • Spring-boot enabled, annotation based @Configuration class • JUnit context-aware test case Page 3
  • 4. IO Platform • Cohesive, Versioned Platform of all Spring projects and dependencies • Aims to reduce version dependency nightmares within Spring projects and transitive dependencies • Just think of it as a BOM for all Spring projects and their dependencies • Example of versioning it wraps into a single versioned product: – http://docs.spring.io/platform/docs/1.1.1.RELEASE/reference/html single/#appendix-dependency-versions Page 4
  • 5. Boot • Easily create ‘runnable’ Spring applications • Embed Tomcat or Jetty directly (no need to deploy WAR files) • Provides ‘starter’ POMs to simply Maven/Gradle configuration • Provides production-ready features for metrics, health checks, and external configurations • Absolutely no code generation or requirement for XML • Actuator – Provides JMX/REST endpoints for monitoring – A list of them can be found at: http://docs.spring.io/spring- boot/docs/current-SNAPSHOT/reference/htmlsingle/#production- ready-endpoints Page 5
  • 6. Data / Data REST • Easy to use data access for many different technologies (includes relational, non-relational, map reduce and cloud data services) • Query definition can be derived from method name – Examples: http://docs.spring.io/spring- data/jpa/docs/1.7.0.RELEASE/reference/html/#jpa.query- methods • Single annotation, @RestRepositoryRestResource, on your Repository provides REST support for CRUD options (including custom-defined methods) • REST calls include validation support using JSR-303 • REST uses HAL to render responses (https://tools.ietf.org/html/draft-kelly-json-hal-06) Page 6
  • 8. What is MongoDB? • NoSQL Database • Document Store (JSON / BSON) • Databases • Collections • Chunks • Types – Object – Date – String – Boolean – … Page 8
  • 10. Remember This Guy? Page 10 He was right! … but he’s still an idiot!
  • 12. Scalability? Backups? Disaster Recovery? Page 12
  • 13. Page 13 Server 3 Server 2 Server 1 Config Server Shard 1 Config Server Config Server Shard 1 Shard 1 Shard 2 Shard 2 Shard 2 Router 1 Router 2
  • 14. The Aliens Are Invading… Page 14
  • 16. Tying It All Together Page 16
  • 17. References • Legit – http://blog.mongodb.org/post/475279604/on-distributed- consistency-part-1 – http://stevefinck.blogspot.com/2014/10/setting-up-mongodb- cluster.html – http://www.dataversity.net/acid-vs-base-the-shifting-ph-of- database-transaction-processing/ – http://www.johndcook.com/blog/2009/07/06/brewer-cap- theorem-base/ – https://www.digitalocean.com/community/tutorials/a- comparison-of-nosql-database-management-systems-and- models • Humor Me – http://www.youtube.com/watch?v=b2F-DItXtZs – http://en.wikipedia.org/wiki/All_your_base_are_belong_to_us Page 17