SlideShare a Scribd company logo
Deploying to the Edge




                             Apache
                        CouchDB
Friday, 27 March 2009
Relax
Friday, 27 March 2009
Who’s Talking?

                        •   J Chris Anderson / jchris@apache.org / @jchris
                        •   PHP -> Rails -> JSON -> CouchDB
                        •   Director, couch.io




Friday, 27 March 2009
And You?

                        •   Web developers?
                        •   JavaScript coders?
                        •   CouchDB users?




Friday, 27 March 2009
CouchDB at the Edge
                        •   CouchDB Basics
                        •   Design Documents
                        •   View Source ➙ Open Source
                        •   Deployment
                        •   Application Constraints




Friday, 27 March 2009
Damien Katz
  Wassat?
Friday, 27 March 2009

What’s CouchDB?
Schema Free (JSON)
                        •

                                                   CouchDB
                        •   Document Oriented,
                            Not Relational

                        •   Highly Concurrent

                        •   RESTful HTTP API

                        •   JavaScript Powered
                            Map/Reduce

                        •   N-Master Replication

                        •   Robust Storage



Friday, 27 March 2009
RESTful HTTP
                 •      Binary attachments

                 •      JSON is ideal for Ajax

                 •      Web Native

                 •      Standalone Applications




Friday, 27 March 2009
Design Documents
                 •      Application Code

                 •      JSON Documents

                 •      Share

                        •   couchapp clone

                        •   Replication




Friday, 27 March 2009
Design Documents
                 •      Application Code

                 •      JSON Documents

                 •      Share

                        •   couchapp clone

                        •   Replication




Friday, 27 March 2009
Design Documents
                 •      Application Code

                 •      JSON Documents

                 •      Share

                        •   couchapp clone

                        •   Replication




Friday, 27 March 2009
Design Documents
                 •      Application Code

                 •      JSON Documents

                 •      Share

                        •   couchapp clone

                        •   Replication




Friday, 27 March 2009
View Source ➙ Open Source
                                                                        •   “Running at the Edge”
                                                                            when users run local
                                                                            CouchDB nodes.

                                                                        •   Applications are data.

                                                                        •   Give control to users.



              CC-BY-SA http://www.flickr.com/photos/kelleys/492253912/




Friday, 27 March 2009
Easy to Share
                                •   Design Docs are
                                    replicated.

                                •   If you can see an
                                    application, you can
                                    have the code.




Friday, 27 March 2009
Oooh... Replication




Friday, 27 March 2009
Friday, 27 March 2009
Friday, 27 March 2009
Friday, 27 March 2009
Friday, 27 March 2009
Friday, 27 March 2009
Friday, 27 March 2009
Friday, 27 March 2009

periodic, notifier system
Friday, 27 March 2009
Friday, 27 March 2009

P2P apps
Deployment
                 •      Traditional Server

                        •   couchapp push

                 •      Replicated to User

                        •   offline-mode

                 •      Peer to Peer

                        •   Ad hoc sharing



Friday, 27 March 2009
Traditional Server
                        •   We’re familiar with the application model.
                        •   We know we can scale CouchDB.
                        •   Centralized servers are hard to run.
                            •   Users expect low latency responses.
                            •   Peak traffic events are interesting.




Friday, 27 March 2009
Offline Mode
                        •   Application model is more like a desktop.
                        •   Code runs primarily at the client.
                        •   Replication keeps the edge in sync with
                            the cloud.
                        •   Latency is less important than throughput.




Friday, 27 March 2009
Peer to Peer
                        •   Needs no primary service provider.
                        •   Users can mashup apps and data.
                        •   Generative because people own the code.
                        •   We’re still learning application models.




Friday, 27 March 2009
Friday, 27 March 2009

P2P apps
Programming
                         at the Edge


Friday, 27 March 2009
More than Ajax




Friday, 27 March 2009
•   Side Effect Free JavaScript Function
•   Converts from a single document into a response with any Content-Type
•   CouchApp makes it easy to use http://embeddedjs.com templates in your _show functions.
•   Cacheable with Etags
Render JSON Docs as HTML
         shows/post.js                                                            /drl/_show/sofa/post/Hello-World-For-Real-This-Time




Friday, 27 March 2009
•   Side Effect Free JavaScript Function
•   Converts from a single document into a response with any Content-Type
•   CouchApp makes it easy to use http://embeddedjs.com templates in your _show functions.
•   Cacheable with Etags
Render Views as HTML
          lists/index.js                                     /drl/_list/sofa/index/recent-posts?descending=true&limit=8




Friday, 27 March 2009

• Side effect free and cacheable, like _show
• Run with different parameters for the head, tail, and each individual row of the view.
Context is Expensive
                        •   Validate one document.

                        •   Render requests have no
                            side effects.

                        •   Limited to a single
                            document or view.

                        •   Document updates
                            trigger asynchronous
                            processing.



Friday, 27 March 2009
Identity
                 •      Can we trust
                        intermediate servers?

                 •      Key-Based Identity

                 •      Signed Messages

                        •   Canonical JSON

                 •      Web of Trust




Friday, 27 March 2009
Where do I start?
                        •   @CouchDB on Twitter
                        •   http://couchdb.org/
                        •   http://planet.couchdb.org/
                        •   http://books.couchdb.org/relax/
                        •   http://groups.google.com/group/couchapp




Friday, 27 March 2009
couch.io
                        Berlin – London – Portland




Friday, 27 March 2009
anks!
Friday, 27 March 2009
Friday, 27 March 2009

More Related Content

Viewers also liked

Hatching Chicks
Hatching ChicksHatching Chicks
Hatching ChicksJamie
 
MIR - Migliora I Requisiti
MIR - Migliora I Requisiti MIR - Migliora I Requisiti
MIR - Migliora I Requisiti
Andrea Baruffaldi
 
1 caldecottbooks
1 caldecottbooks1 caldecottbooks
1 caldecottbooksJamie
 
MIR - Migliora I Requisiti 2016
MIR  -  Migliora I Requisiti 2016MIR  -  Migliora I Requisiti 2016
MIR - Migliora I Requisiti 2016
Andrea Baruffaldi
 
Normas para la elaboracion y presentacion de trabajos de investigacion 2016
Normas para la elaboracion y presentacion de trabajos de investigacion 2016Normas para la elaboracion y presentacion de trabajos de investigacion 2016
Normas para la elaboracion y presentacion de trabajos de investigacion 2016
eriorkysm
 
testSlideShare2008-11-24:03.30 - updated
testSlideShare2008-11-24:03.30 - updatedtestSlideShare2008-11-24:03.30 - updated
testSlideShare2008-11-24:03.30 - updated
yosaggregator1
 
Google Docs Apps Basics
Google Docs Apps BasicsGoogle Docs Apps Basics
Google Docs Apps Basics
Jamie
 
Encyclopedia
EncyclopediaEncyclopedia
Encyclopedia
Jamie
 
Animals Definitely Should Not Borrow Library Books
Animals Definitely Should Not Borrow Library BooksAnimals Definitely Should Not Borrow Library Books
Animals Definitely Should Not Borrow Library BooksJamie
 
German Photographer
German PhotographerGerman Photographer
German Photographer
yosaggregator1
 
Rainforest Food[1]
Rainforest Food[1]Rainforest Food[1]
Rainforest Food[1]
Jamie
 
CouchDB Open Source Bridge
CouchDB Open Source BridgeCouchDB Open Source Bridge
CouchDB Open Source BridgeChris Anderson
 
Gmail Basics
Gmail BasicsGmail Basics
Gmail Basics
Jamie
 
TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...
TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...
TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...
yosaggregator1
 

Viewers also liked (15)

Hatching Chicks
Hatching ChicksHatching Chicks
Hatching Chicks
 
MIR - Migliora I Requisiti
MIR - Migliora I Requisiti MIR - Migliora I Requisiti
MIR - Migliora I Requisiti
 
1 caldecottbooks
1 caldecottbooks1 caldecottbooks
1 caldecottbooks
 
What Is A Computer
What Is A ComputerWhat Is A Computer
What Is A Computer
 
MIR - Migliora I Requisiti 2016
MIR  -  Migliora I Requisiti 2016MIR  -  Migliora I Requisiti 2016
MIR - Migliora I Requisiti 2016
 
Normas para la elaboracion y presentacion de trabajos de investigacion 2016
Normas para la elaboracion y presentacion de trabajos de investigacion 2016Normas para la elaboracion y presentacion de trabajos de investigacion 2016
Normas para la elaboracion y presentacion de trabajos de investigacion 2016
 
testSlideShare2008-11-24:03.30 - updated
testSlideShare2008-11-24:03.30 - updatedtestSlideShare2008-11-24:03.30 - updated
testSlideShare2008-11-24:03.30 - updated
 
Google Docs Apps Basics
Google Docs Apps BasicsGoogle Docs Apps Basics
Google Docs Apps Basics
 
Encyclopedia
EncyclopediaEncyclopedia
Encyclopedia
 
Animals Definitely Should Not Borrow Library Books
Animals Definitely Should Not Borrow Library BooksAnimals Definitely Should Not Borrow Library Books
Animals Definitely Should Not Borrow Library Books
 
German Photographer
German PhotographerGerman Photographer
German Photographer
 
Rainforest Food[1]
Rainforest Food[1]Rainforest Food[1]
Rainforest Food[1]
 
CouchDB Open Source Bridge
CouchDB Open Source BridgeCouchDB Open Source Bridge
CouchDB Open Source Bridge
 
Gmail Basics
Gmail BasicsGmail Basics
Gmail Basics
 
TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...
TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...
TestLongdescription-CHARLESTON, W.Va. – Utility companies and road crews prep...
 

Similar to CouchDB to the Edge ApacheCon EU

MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008
MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008
MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008
ChemAxon
 
No Really, It's All About You
No Really, It's All About YouNo Really, It's All About You
No Really, It's All About You
Chris Cornutt
 
Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1
Ronald Bradford
 
Building Scale Free Applications with Hadoop and Cascading
Building Scale Free Applications with Hadoop and CascadingBuilding Scale Free Applications with Hadoop and Cascading
Building Scale Free Applications with Hadoop and Cascading
cwensel
 
Portlets
PortletsPortlets
Portletsssetem
 
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
cwensel
 
Web Standards and Accessibility
Web Standards and AccessibilityWeb Standards and Accessibility
Web Standards and Accessibility
Nick DeNardis
 
Rails in the Cloud
Rails in the CloudRails in the Cloud
Rails in the Cloud
iwarshak
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
peter_marklund
 
Why Architecture in Web Development matters
Why Architecture in Web Development mattersWhy Architecture in Web Development matters
Why Architecture in Web Development matters
Lars Jankowfsky
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Clusterguestd34230
 
Colin Clark Accessible U Is With J Query And Infusion[1]
Colin Clark Accessible U Is With J Query And Infusion[1]Colin Clark Accessible U Is With J Query And Infusion[1]
Colin Clark Accessible U Is With J Query And Infusion[1]Ajax Experience 2009
 
Cloudera Desktop
Cloudera DesktopCloudera Desktop
Cloudera Desktop
Hadoop User Group
 
Software Engineering In PHP
Software Engineering In PHPSoftware Engineering In PHP
Software Engineering In PHP
Ralph Schindler
 
Drupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQueryDrupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQuery
Matt Butcher
 
The Beginning - Jan 20 2009
The Beginning - Jan 20 2009The Beginning - Jan 20 2009
The Beginning - Jan 20 2009
Abhishek Mishra
 
What is Ruby on Rails?
What is Ruby on Rails?What is Ruby on Rails?
What is Ruby on Rails?
Karmen Blake
 
The Boundaryless Value-Chain
The Boundaryless Value-ChainThe Boundaryless Value-Chain
The Boundaryless Value-Chain
Peter Evans-Greenwood
 
LibX 2.0
LibX 2.0LibX 2.0
LibX 2.0
eby
 

Similar to CouchDB to the Edge ApacheCon EU (20)

MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008
MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008
MarvinSketch and MarvinView: Tips And Tricks: US UGM 2008
 
No Really, It's All About You
No Really, It's All About YouNo Really, It's All About You
No Really, It's All About You
 
Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1
 
Building Scale Free Applications with Hadoop and Cascading
Building Scale Free Applications with Hadoop and CascadingBuilding Scale Free Applications with Hadoop and Cascading
Building Scale Free Applications with Hadoop and Cascading
 
Portlets
PortletsPortlets
Portlets
 
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
 
Web Standards and Accessibility
Web Standards and AccessibilityWeb Standards and Accessibility
Web Standards and Accessibility
 
Rails in the Cloud
Rails in the CloudRails in the Cloud
Rails in the Cloud
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
 
Why Architecture in Web Development matters
Why Architecture in Web Development mattersWhy Architecture in Web Development matters
Why Architecture in Web Development matters
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Cluster
 
Brandon
BrandonBrandon
Brandon
 
Colin Clark Accessible U Is With J Query And Infusion[1]
Colin Clark Accessible U Is With J Query And Infusion[1]Colin Clark Accessible U Is With J Query And Infusion[1]
Colin Clark Accessible U Is With J Query And Infusion[1]
 
Cloudera Desktop
Cloudera DesktopCloudera Desktop
Cloudera Desktop
 
Software Engineering In PHP
Software Engineering In PHPSoftware Engineering In PHP
Software Engineering In PHP
 
Drupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQueryDrupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQuery
 
The Beginning - Jan 20 2009
The Beginning - Jan 20 2009The Beginning - Jan 20 2009
The Beginning - Jan 20 2009
 
What is Ruby on Rails?
What is Ruby on Rails?What is Ruby on Rails?
What is Ruby on Rails?
 
The Boundaryless Value-Chain
The Boundaryless Value-ChainThe Boundaryless Value-Chain
The Boundaryless Value-Chain
 
LibX 2.0
LibX 2.0LibX 2.0
LibX 2.0
 

Recently uploaded

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

CouchDB to the Edge ApacheCon EU

  • 1. Deploying to the Edge Apache CouchDB Friday, 27 March 2009
  • 3. Who’s Talking? • J Chris Anderson / jchris@apache.org / @jchris • PHP -> Rails -> JSON -> CouchDB • Director, couch.io Friday, 27 March 2009
  • 4. And You? • Web developers? • JavaScript coders? • CouchDB users? Friday, 27 March 2009
  • 5. CouchDB at the Edge • CouchDB Basics • Design Documents • View Source ➙ Open Source • Deployment • Application Constraints Friday, 27 March 2009
  • 6. Damien Katz Wassat? Friday, 27 March 2009 What’s CouchDB?
  • 7. Schema Free (JSON) • CouchDB • Document Oriented, Not Relational • Highly Concurrent • RESTful HTTP API • JavaScript Powered Map/Reduce • N-Master Replication • Robust Storage Friday, 27 March 2009
  • 8. RESTful HTTP • Binary attachments • JSON is ideal for Ajax • Web Native • Standalone Applications Friday, 27 March 2009
  • 9. Design Documents • Application Code • JSON Documents • Share • couchapp clone • Replication Friday, 27 March 2009
  • 10. Design Documents • Application Code • JSON Documents • Share • couchapp clone • Replication Friday, 27 March 2009
  • 11. Design Documents • Application Code • JSON Documents • Share • couchapp clone • Replication Friday, 27 March 2009
  • 12. Design Documents • Application Code • JSON Documents • Share • couchapp clone • Replication Friday, 27 March 2009
  • 13. View Source ➙ Open Source • “Running at the Edge” when users run local CouchDB nodes. • Applications are data. • Give control to users. CC-BY-SA http://www.flickr.com/photos/kelleys/492253912/ Friday, 27 March 2009
  • 14. Easy to Share • Design Docs are replicated. • If you can see an application, you can have the code. Friday, 27 March 2009
  • 22. Friday, 27 March 2009 periodic, notifier system
  • 24. Friday, 27 March 2009 P2P apps
  • 25. Deployment • Traditional Server • couchapp push • Replicated to User • offline-mode • Peer to Peer • Ad hoc sharing Friday, 27 March 2009
  • 26. Traditional Server • We’re familiar with the application model. • We know we can scale CouchDB. • Centralized servers are hard to run. • Users expect low latency responses. • Peak traffic events are interesting. Friday, 27 March 2009
  • 27. Offline Mode • Application model is more like a desktop. • Code runs primarily at the client. • Replication keeps the edge in sync with the cloud. • Latency is less important than throughput. Friday, 27 March 2009
  • 28. Peer to Peer • Needs no primary service provider. • Users can mashup apps and data. • Generative because people own the code. • We’re still learning application models. Friday, 27 March 2009
  • 29. Friday, 27 March 2009 P2P apps
  • 30. Programming at the Edge Friday, 27 March 2009
  • 31. More than Ajax Friday, 27 March 2009 • Side Effect Free JavaScript Function • Converts from a single document into a response with any Content-Type • CouchApp makes it easy to use http://embeddedjs.com templates in your _show functions. • Cacheable with Etags
  • 32. Render JSON Docs as HTML shows/post.js /drl/_show/sofa/post/Hello-World-For-Real-This-Time Friday, 27 March 2009 • Side Effect Free JavaScript Function • Converts from a single document into a response with any Content-Type • CouchApp makes it easy to use http://embeddedjs.com templates in your _show functions. • Cacheable with Etags
  • 33. Render Views as HTML lists/index.js /drl/_list/sofa/index/recent-posts?descending=true&limit=8 Friday, 27 March 2009 • Side effect free and cacheable, like _show • Run with different parameters for the head, tail, and each individual row of the view.
  • 34. Context is Expensive • Validate one document. • Render requests have no side effects. • Limited to a single document or view. • Document updates trigger asynchronous processing. Friday, 27 March 2009
  • 35. Identity • Can we trust intermediate servers? • Key-Based Identity • Signed Messages • Canonical JSON • Web of Trust Friday, 27 March 2009
  • 36. Where do I start? • @CouchDB on Twitter • http://couchdb.org/ • http://planet.couchdb.org/ • http://books.couchdb.org/relax/ • http://groups.google.com/group/couchapp Friday, 27 March 2009
  • 37. couch.io Berlin – London – Portland Friday, 27 March 2009