SlideShare a Scribd company logo
Joomla! and MongoDB
Mitch Pirtle
Joomla!Day New York City
December 4, 2010
Before we begin


Coffee?
Breakfast?
NERDS!
Are you ready to get your nerd on?
About this presentation

 Databases from a CMS perspective
 How we got to where we are now
 What MongoDB brings to the equation
 Where we are going
About me
About me
Nothing but web since 1995
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
CTO at Totsy.com
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
CTO at Totsy.com
Coming Soon: MongoDB for Web Development
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
CTO at Totsy.com
Coming Soon: MongoDB for Web Development
Coming Soon: Extreme Joomla! Performance
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
CTO at Totsy.com
Coming Soon: MongoDB for Web Development
Coming Soon: Extreme Joomla! Performance
High-traffic projects (Jetsetter, MTV, Food Networks)
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
CTO at Totsy.com
Coming Soon: MongoDB for Web Development
Coming Soon: Extreme Joomla! Performance
High-traffic projects (Jetsetter, MTV, Food Networks)
Husband, dad, skate punk, metalcore bassist
How it all started
“I need a website, and want
to be able to manage it on
my own.”
We got that,
we’ll just use a CMS.
Purpose of a CMS

Manage content
Organize navigation
Dynamic search
Self-service management of content
The result?
LAMP
Linux, Apache, MySQL, PHP
Challenges of a CMS


One size fits all
Based on ubiquitous platforms
Lowest common denominator
Nothing against MySQL,
but...
Nothing against MySQL,
but...
Brittle, inflexible
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Difficult to code with
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Difficult to code with
Lack of relational features pushed relational logic into
applications
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Difficult to code with
Lack of relational features pushed relational logic into
applications
Zero portability as a result
Where that leaves us
Where that leaves us
Everybody ran out and installed without asking
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
End users and developers obsequiously took LAMP for
granted as the Right Tool for the Right Job™
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
End users and developers obsequiously took LAMP for
granted as the Right Tool for the Right Job™
Managing content, from a relational database
perspective, SUCKS
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
End users and developers obsequiously took LAMP for
granted as the Right Tool for the Right Job™
Managing content, from a relational database
perspective, SUCKS
Building CMS apps is not much better either!
Your relational data

 Whoah Nelly!
 Good reason for a DBA
 Many foreign keys
 Need for triggers,
 stored procedures,
 cronjobs...
Article with comments &
tags

         Tags          Articles       Comments
   id              id               id
   tag             title            date_created
                   slug             author_id
                   excerpt          parent_id
                   author_id        subject
     ArticleTags   date_created     content
   id              date_published
   article_id      date_modified
   tag_id          content
Then the trouble starts
“Hey, can we add social media to our website?”
Websites aren’t just content
Websites aren’t just content

 Interactivity
Websites aren’t just content

 Interactivity
 Rich media
Websites aren’t just content

 Interactivity
 Rich media
 Social media
Websites aren’t just content

 Interactivity
 Rich media
 Social media
 Web services integration
Websites aren’t just content

 Interactivity
 Rich media
 Social media
 Web services integration
 Crazy, whack-daddy scale
Joomla and MongoDB
“How long can this go on?”
Why develop in an
object language, just
to stuff mismatched
chunks of your
objects in a non-
object data store?
Introducing:
What MongoDB can do
What MongoDB can do

Simplifies development
What MongoDB can do

Simplifies development
Stores in binary JSON objects
What MongoDB can do

Simplifies development
Stores in binary JSON objects
Return data directly to browser in JSON
What MongoDB can do

Simplifies development
Stores in binary JSON objects
Return data directly to browser in JSON
Store data, binary objects, whatevah!
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
                 date_published
                 date_modified
                 content
                 comments
                 -- comment1
                 -- comment2
                 -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
                 comments
                 -- comment1
                 -- comment2
                 -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
 Simple          comments
                 -- comment1
                 -- comment2
                 -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
 Simple          comments
                 -- comment1
                 -- comment2
 Fast            -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
 Simple          comments
                 -- comment1
                 -- comment2
 Fast            -- comment3
                 tags
                 -- tag1
 Complete        -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
The Whole Thang

K.I.S.S.
Simple to manage
Simple to access
Little or no need for
foreign constraints
What it looks like now


 2.5GB data on disk
 1.0GB data in memory
CODE.
Examples of MongoDB on the console, baby.
MySQL
MongoDB
MySQL
MongoDB
MySQL
MongoDB
What MongoDB did for me
while building Totsy.com
What MongoDB did for me.



Encouraged extremely simple data model, producing
tighter, faster, bug-free code.
What MongoDB did for me.


Eliminated the need for cache.
Really. No kidding.
What MongoDB did for me.


Used GridFS for all file storage. Lithium happily
provided a media adapter allowing us to create a
GridFS plugin to transparently store files in the
database.
What MongoDB did for me.



Removed worries about a complicated hosting
environment
What MongoDB did for me.



Bought us a ton of time to carefully deliberate next
steps, and come out of permanent crisis mode
What MongoDB did for me.



Allowed us to commit every possible crime required for
survival in a frantic, frenetic startup environment
Coming to a CMS near you
Drupal for MongoDB
http://drupal.org/project/mongodb

D7: mongodb_cache: Store cache items in mongodb

D7: mongodb_field_storage: Store the fields in mongodb

D7: mongodb_session: Store sessions in mongodb

D6/D7: mongodb_watchdog: Store the watchdog messages in mongodb

D6/D7: mongodb: support library for the other modules

D7: mongodb_block: Store block information in mongodb. Very close to the core
block API

D7: mongodb_queue: DrupalQueueInterface implementation using mongodb

http://sf2010.drupal.org/conference/sessions/mongodb-humongous-drupal
Even MORE Drupal

Work to get listing API into core:
http://drupal.org/node/780154
Experimental goodies to play with:
http://drupalcode.org/viewvc/drupal/contributions/
sandbox/chx/dbtng_mongo_experimental/
Joomla!


MongoDB helper library for Joomla!
https://github.com/spacemonkey/sml4joomla
Branch of 1.6 development for alternative query builder
Full MongoDB support most likely in 2.0
No wait, almost forgot.
Announcing JMongoAdmin

Joomla native extension
Similar in interface to phpMyAdmin
Status: currently alpha, beta in January 2011
Stable in Q1 2011
Funded solely by David Joly
http://davidjoly.com/
Not CMS, but still relevant
Ruby & Rails

MongoMapper
http://github.com/jnunemaker/mongomapper/
Brings MongoDB to many RoR platforms
  RadiantCMS
  Typo
  Mephisto
Lithium PHP framework

http://rad-dev.org/lithium/wiki
MongoDB native support
Projects demonstrating MongoDB support:
  http://rad-dev.org/lithium_mongo/source
  http://rad-dev.org/lithium_blog/source
CakePHP framework

MongoDB datasource
http://github.com/ichikaway/mongoDB-Datasource
Example article
http://mark-story.com/posts/view/using-mongodb-
with-cakephp
PHP framework


http://kohanaframework.org/
MangoDB
http://github.com/Wouterrr/MangoDB
More about MongoDB
MongoDB Language Center
http://www.mongodb.org/display/DOCS/Drivers
Community Resources
http://www.mongodb.org/display/DOCS/
Community
Development Tracker
http://jira.mongodb.org
MongoDB Cookbook
http://cookbook.mongodb.org/
Explore MongoDB @Github
http://github.com/search?q=mongo
Mongo PHP Language
http://us2.php.net/mongo
Time for my favorite game
Stump the Nerd™
Thanks!
Email: spacemonkey@mongodb.org
Twitter: @mitchitized
Web: http://www.spacemonkeylabs.com
Slides: http://www.slideshare.net/
spacemonkeylabs
Photo credits
 business man 1, by Larissa Kanno    A big goose, by Andrea
 http://www.sxc.hu/photo/877661      Kratzenberg
                                     http://www.sxc.hu/photo/1148702
 Orient Lamp, by Greg Griffin
 http://www.sxc.hu/photo/964807      Steppe eagle, by Gabor Szakacs
                                     http://www.sxc.hu/photo/1044948
 Binary code 1, by Flavio Takemoto
 http://www.sxc.hu/photo/1159613     Blue sportscar, by Jean Scheijen
                                     http://www.sxc.hu/photo/794992
 Cats, by (anonymous)
 http://www.sxc.hu/photo/1273828     EW_PKB, by daniel wildman
                                     http://www.sxc.hu/photo/845589
 Cougar on the prowl, by
 (anonymous)
 http://www.sxc.hu/photo/1253662

More Related Content

Similar to Joomla and MongoDB (20)

PDF
Blog Comments Organizer
Sweta Vajjhala
 
PPTX
What’s the big deal about semantic HTML?
Jono Alderson
 
PPTX
Html goodies
Ali Hasan
 
PDF
MongoDB NoSQL and all of its awesomeness
Troy Grosfield
 
KEY
Introduction to MongoDB
Neil Henegan
 
KEY
WordPress as a CMS (short version)
Stephanie Leary
 
PDF
Practical AtomPub Servers @ YAPC::Asia 2008
Takeru INOUE
 
PDF
Tagging and Folksonomy Schema Design for Scalability and Performance
Eduard Bondarenko
 
PPTX
Lesson 3
hstryk
 
PPT
Wt-UNNIT-1 (1).ppt
GReshma10
 
KEY
Flexible site structure with cake php
andygale
 
PPTX
Documentation 2.0: DIY Content Delivery and Feedback in Real-time
lykhinin
 
PDF
Markup As An Api
Jean-Jacques Halans
 
PDF
Fluidinfo 101
Eric Seidel
 
PDF
Schema Design
MongoDB
 
PDF
Building Apps with MongoDB
Nate Abele
 
PPT
Newspapers with WordPress
Christopher Ross
 
PDF
Make Your Content Nimble - Confab
Rachel Lovinger
 
PDF
12 core technologies you should learn, love, and hate to be a 'real' technocrat
linoj
 
Blog Comments Organizer
Sweta Vajjhala
 
What’s the big deal about semantic HTML?
Jono Alderson
 
Html goodies
Ali Hasan
 
MongoDB NoSQL and all of its awesomeness
Troy Grosfield
 
Introduction to MongoDB
Neil Henegan
 
WordPress as a CMS (short version)
Stephanie Leary
 
Practical AtomPub Servers @ YAPC::Asia 2008
Takeru INOUE
 
Tagging and Folksonomy Schema Design for Scalability and Performance
Eduard Bondarenko
 
Lesson 3
hstryk
 
Wt-UNNIT-1 (1).ppt
GReshma10
 
Flexible site structure with cake php
andygale
 
Documentation 2.0: DIY Content Delivery and Feedback in Real-time
lykhinin
 
Markup As An Api
Jean-Jacques Halans
 
Fluidinfo 101
Eric Seidel
 
Schema Design
MongoDB
 
Building Apps with MongoDB
Nate Abele
 
Newspapers with WordPress
Christopher Ross
 
Make Your Content Nimble - Confab
Rachel Lovinger
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
linoj
 

More from Mitch Pirtle (20)

PDF
Cloudy with a chance of scale
Mitch Pirtle
 
PDF
My life with MongoDB
Mitch Pirtle
 
PDF
PHP Cloud Deployment Toolkits
Mitch Pirtle
 
PDF
MongoDB, Node.js, and You: PART III
Mitch Pirtle
 
PDF
MongoDB, Node.js And You: PART II
Mitch Pirtle
 
PDF
Mongodb, Node.js and You: PART I
Mitch Pirtle
 
PDF
MongoDB, Development and You
Mitch Pirtle
 
PDF
MongoTorino 2013 Opening Keynote
Mitch Pirtle
 
PDF
Data as Documents: Overview and intro to MongoDB
Mitch Pirtle
 
PDF
Cloud conference - mongodb
Mitch Pirtle
 
KEY
Unified Content Model and Joomla!
Mitch Pirtle
 
KEY
Gridfs and MongoDB
Mitch Pirtle
 
KEY
Joomla - an Overview
Mitch Pirtle
 
KEY
Operational MongoDB
Mitch Pirtle
 
KEY
Joomla Extreme Performance
Mitch Pirtle
 
PDF
Mongodb and Totsy: An e-commerce case study
Mitch Pirtle
 
KEY
Mongodb and Totsy - E-commerce Case Study
Mitch Pirtle
 
KEY
PHP, Lithium and MongoDB
Mitch Pirtle
 
KEY
Joomla For Entrepreneurs
Mitch Pirtle
 
KEY
Thin Server Architecture
Mitch Pirtle
 
Cloudy with a chance of scale
Mitch Pirtle
 
My life with MongoDB
Mitch Pirtle
 
PHP Cloud Deployment Toolkits
Mitch Pirtle
 
MongoDB, Node.js, and You: PART III
Mitch Pirtle
 
MongoDB, Node.js And You: PART II
Mitch Pirtle
 
Mongodb, Node.js and You: PART I
Mitch Pirtle
 
MongoDB, Development and You
Mitch Pirtle
 
MongoTorino 2013 Opening Keynote
Mitch Pirtle
 
Data as Documents: Overview and intro to MongoDB
Mitch Pirtle
 
Cloud conference - mongodb
Mitch Pirtle
 
Unified Content Model and Joomla!
Mitch Pirtle
 
Gridfs and MongoDB
Mitch Pirtle
 
Joomla - an Overview
Mitch Pirtle
 
Operational MongoDB
Mitch Pirtle
 
Joomla Extreme Performance
Mitch Pirtle
 
Mongodb and Totsy: An e-commerce case study
Mitch Pirtle
 
Mongodb and Totsy - E-commerce Case Study
Mitch Pirtle
 
PHP, Lithium and MongoDB
Mitch Pirtle
 
Joomla For Entrepreneurs
Mitch Pirtle
 
Thin Server Architecture
Mitch Pirtle
 
Ad

Recently uploaded (20)

PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Ad

Joomla and MongoDB

Editor's Notes