MongoDB + Vert.x = Red Hot goodness


Presented by:

Steven Pousty

talks.thesteve0.com/vertmongo

@TheSteve0 on Twitter, IRC, Instagram, Ingress, Skype, SmugMug, and Github

 

Agenda

  1. A basic introduction to Vert.x
  2. A little about Vert.x and MongoDB on OpenShift
  3. See some polyglot websocket mapping goodness

Here is what we are going to build
http://ftmongo-spatial.rhcloud.com/ or http://bit.ly/vertmongo !

 

Vert.x

  • Polyglot - anything that runs on JVM
  • Asynchronous or Synchronous
  • Non-blocking IO (based on Netty)
  • Event Bus and Websockets out of the box
  • Tons-o-modern Web Utility functions

Architecture and Terms pt I

Architecture and Terms pt II

Architecture and Terms pt III

Vert.x on OpenShift

On GitHub! Maintained by Nick Scavelli

So simple - anyone can do it

Differences from usual Vert.x deploy

  • No command line instead vertx.env
  • On a scalable, not really made for different verticles in different gears
  • No failover - likely to be a module
  • No git push to build and deploy

On to MongoDB

A bit about MongoDB

  • A document is just a bunch of attributes and values - think of it like a HashMap
  • Can be nested - helps avoid joins
  • Schemaless
  • Really good at fast writes - but you give up immediate consistency
  • Easy to horizontally scale

MongoDB + Vert.x

  • Mongo Driver is async by default
  • Vert.x has a module to speak to the MongoDB
  • Uses the eventbus
  • JSON attributes to determine interaction

Scenario

  • Build a bus tracking system for Chattanooga
  • We got a nice API from Jason D with JSON
  • Enough Talk - CODE!

     

    Let's wrap it up

    1. Vert.x is async and awesome without needing to know Node.js
    2. Vert.x is great on OpenShift and getting better - blog post here
    3. Free!
    4. Github repo: https://github.com/thesteve0/ftmongo-src

    Come hang out with us:
    #openshift or #openshift-dev on freenode irc
    OR
    users@lists.openshift.redhat.com