NOSQL + NODE.JS
   NODE.PGH - 0.7 MEETUP
NICHOLAS MCCLAY
UX DESIGNER & DEVELOPER




   @nickmcclay
THANKS TO PETER BELL
WHAT IS NOSQL?
WHAT IS SQL?
CONSISTENCY VS. AVAILABILITY
CHOICES
TYPES OF NOSQL
HOW TO MODEL THE DOMAIN?
HOW TO MODEL THE DOMAIN?



        where does this piece of data belong?
HOW TO MODEL THE DOMAIN?



        where does this piece of data belong?



              How do I find/change it?
KEY/VALUE NOSQL
KEY/VALUE DATA
KEY/VALUE USE CASES
KEY/VALUE USE CASES


 FOCUS : SCALE AND LOAD
KEY/VALUE USE CASES


     FOCUS : SCALE AND LOAD

HIGH AVAILABILITY/LOW DURABILITY
KEY/VALUE USE CASES


     FOCUS : SCALE AND LOAD

HIGH AVAILABILITY/LOW DURABILITY
    REALTIME TRANSACTIONS
KEY/VALUE USE CASES


     FOCUS : SCALE AND LOAD

HIGH AVAILABILITY/LOW DURABILITY
    REALTIME TRANSACTIONS
    USER SESSION STORAGE
KEY/VALUE USE CASES


     FOCUS : SCALE AND LOAD

HIGH AVAILABILITY/LOW DURABILITY
    REALTIME TRANSACTIONS
    USER SESSION STORAGE

    NO TO LOW SCHEMA DATA
NODE-REDIS
HTTPS://GITHUB.COM/MRANNEY/NODE_REDIS
CONNECT-REDIS
HTTPS://GITHUB.COM/VISIONMEDIA/CONNECT-REDIS
COLUMN NOSQL
TABULAR DATA
KEY/VALUE USE CASES
KEY/VALUE USE CASES


CONCEPT: SINGLE, INFINITE TABLE
KEY/VALUE USE CASES


CONCEPT: SINGLE, INFINITE TABLE
   CROSS REFERENCED DATA
KEY/VALUE USE CASES


CONCEPT: SINGLE, INFINITE TABLE
   CROSS REFERENCED DATA
       GEOSPATIAL DATA
KEY/VALUE USE CASES


CONCEPT: SINGLE, INFINITE TABLE
   CROSS REFERENCED DATA
       GEOSPATIAL DATA
  TABULAR BASED SCHEMAS
KEY/VALUE USE CASES


CONCEPT: SINGLE, INFINITE TABLE
   CROSS REFERENCED DATA
       GEOSPATIAL DATA
  TABULAR BASED SCHEMAS

    SIMPLE RELATIONSHIPS
NODE-CASSANDRA-CLIENT
HTTPS://GITHUB.COM/RACKER/NODE-CASSANDRA-CLIENT
NODE-HBASE
HTTPS://GITHUB.COM/WDAVIDW/NODE-HBASE
DOCUMENT NOSQL
DOCUMENT DATA
DOCUMENT DATA
DOCUMENT DATA
DOCUMENT USE CASES
DOCUMENT USE CASES


GREAT FOR SEMI-STRUCTURED DATA
DOCUMENT USE CASES


GREAT FOR SEMI-STRUCTURED DATA

   SELF CONTAINED DATA SETS
DOCUMENT USE CASES


GREAT FOR SEMI-STRUCTURED DATA

   SELF CONTAINED DATA SETS
 ARTICLES, COMMENTS, PRODUCTS
DOCUMENT USE CASES


GREAT FOR SEMI-STRUCTURED DATA

   SELF CONTAINED DATA SETS
 ARTICLES, COMMENTS, PRODUCTS
      REVISION TRACKING
DOCUMENT USE CASES


GREAT FOR SEMI-STRUCTURED DATA

   SELF CONTAINED DATA SETS
 ARTICLES, COMMENTS, PRODUCTS
      REVISION TRACKING

      FLEXIBLE SCHEMAS
ITS NOT SQL!
ITS NOT SQL!
MONGOOSE
HTTP://MONGOOSEJS.COM/
CRADLE
HTTP://MONGOOSEJS.COM/
COLUMN NOSQL
GRAPH DATA
SIMPLER EXAMPLE
GRAPH USE CASES
GRAPH USE CASES


NODES AND RELATIONSHIPS
GRAPH USE CASES


  NODES AND RELATIONSHIPS
CONNECT SCHEMA-LESS ENTITIES
GRAPH USE CASES


  NODES AND RELATIONSHIPS
CONNECT SCHEMA-LESS ENTITIES
    WHITEBOARD FRIENDLY
GRAPH USE CASES


  NODES AND RELATIONSHIPS
CONNECT SCHEMA-LESS ENTITIES
    WHITEBOARD FRIENDLY
     DEEP RELATIONSHIPS
GRAPH USE CASES


  NODES AND RELATIONSHIPS
CONNECT SCHEMA-LESS ENTITIES
    WHITEBOARD FRIENDLY
     DEEP RELATIONSHIPS

     SOCIAL NETWORKS
ITS NOT A DATABASE!
ITS NOT A DATABASE!
ITS NOT A DATABASE!
NODE-NEO4J
HTTPS://GITHUB.COM/THINGDOM/NODE-NEO4J
NODE-NEO4J
HTTPS://GITHUB.COM/THINGDOM/NODE-NEO4J
NODE-NEO4J
HTTPS://GITHUB.COM/THINGDOM/NODE-NEO4J
@nickmcclay



THANKS!

Node.js and NoSQL