SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
ubikDB: an introduction
Building a real time distributed database
for the browser
2014-02-26, budapest_py

Balázs Reé
ree@greenfinity.hu
@reebalazs

Python, JavaScript web development
with open source
Ubik is a book of Philip K. Dick.
Ubik is an universal product.
!

shared database = persistency + notifications
syncing JSON data in the browser
real-time, responsive applications
Data and event flow
•

it’s a sync solution

•

networking through http

•

•
•

‘service’ could be a web
application
Database adapters
Simplest: volatile mem
storage

Clients

Server
service

JSON

DB adapters

mem

MVC…
…
JSON
MVC…
Firebase
•

http://firebase.com

•

“The Realtime Application Platform”

•

database as service, commercial

•

clients: web (JS), IOS / OS X, Java / Android

•

db management interface
Firebase raised $5,6M in 2013.
Is this possible to do
in open source?
Implementation choices
•

2013 Pyramid sprint
in Halle (a.k.a “Wasp
Base”)

•

Substance-D

•

syncing client data
with socket.io (via
http)

•

server connects to
database adapters
to existing DB

Clients

Server
web app

JSON

DB adapters

mem

ZODB

http,
socket.io

Pyramid (Substance-D)
gevent-socketio
gunicorn

JSON

socket.io-client
AngularJS
Url mapping between
ubikDB and ZODB
•

both ZODB and ubikDB has traversal based url
mapping

•

/my_folder_1/my_document_1

•

/my_folder_1/my_document_1/@title

•

/my_folder_1/my_document_1/@body

•

/my_folder_1/my_document_1/@

•

/my_folder_1/my_document_1/@/into/a/deep/structure
On the roadmap
•

reconnecting

•

optimised syncing of collections (use-case driven)

•

read-only (and writeable) database views

•

test coverage

•

more demos
Demo
https://github.com/reebalazs/ubikdb

Más contenido relacionado

La actualidad más candente

Data Collection & Caching using redis | Swatantra Kumar
Data Collection & Caching using redis | Swatantra KumarData Collection & Caching using redis | Swatantra Kumar
Data Collection & Caching using redis | Swatantra Kumar
Swatantra Kumar
 

La actualidad más candente (20)

Redis & MongoDB: Stop Big Data Indigestion Before It Starts
Redis & MongoDB: Stop Big Data Indigestion Before It StartsRedis & MongoDB: Stop Big Data Indigestion Before It Starts
Redis & MongoDB: Stop Big Data Indigestion Before It Starts
 
Nuxeo Platform LTS 2015 - Opening Keynote Event 2015-10
Nuxeo Platform LTS 2015 - Opening Keynote Event 2015-10Nuxeo Platform LTS 2015 - Opening Keynote Event 2015-10
Nuxeo Platform LTS 2015 - Opening Keynote Event 2015-10
 
Data Visualization & Content Analytics: Nuxeo Platform LTS 2015
Data Visualization & Content Analytics: Nuxeo Platform LTS 2015Data Visualization & Content Analytics: Nuxeo Platform LTS 2015
Data Visualization & Content Analytics: Nuxeo Platform LTS 2015
 
Nuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - RoadmapNuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - Roadmap
 
Kafka & Couchbase Integration Patterns
Kafka & Couchbase Integration PatternsKafka & Couchbase Integration Patterns
Kafka & Couchbase Integration Patterns
 
Real Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & CouchbaseReal Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & Couchbase
 
Mobile Offline First
Mobile Offline FirstMobile Offline First
Mobile Offline First
 
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
 
Crud application using react native, redux and redux sagas
Crud application using react native, redux and redux sagasCrud application using react native, redux and redux sagas
Crud application using react native, redux and redux sagas
 
Building a dynamic application with GatsbyJS-Tec-Mexicali
Building a dynamic application  with GatsbyJS-Tec-MexicaliBuilding a dynamic application  with GatsbyJS-Tec-Mexicali
Building a dynamic application with GatsbyJS-Tec-Mexicali
 
Better Content Presentation
Better Content PresentationBetter Content Presentation
Better Content Presentation
 
Better content presentation
Better content presentationBetter content presentation
Better content presentation
 
Enterprise Integration Pack & On-Premises Data Gateway
Enterprise Integration Pack & On-Premises Data GatewayEnterprise Integration Pack & On-Premises Data Gateway
Enterprise Integration Pack & On-Premises Data Gateway
 
Digital Asset Management in Nuxeo Platform LTS 2015
Digital Asset Management in Nuxeo Platform LTS 2015Digital Asset Management in Nuxeo Platform LTS 2015
Digital Asset Management in Nuxeo Platform LTS 2015
 
Firestore: The Basics
Firestore: The BasicsFirestore: The Basics
Firestore: The Basics
 
Microservices, Containers, and Beyond
Microservices, Containers, and BeyondMicroservices, Containers, and Beyond
Microservices, Containers, and Beyond
 
Google cloud
Google cloudGoogle cloud
Google cloud
 
Data Collection & Caching using redis | Swatantra Kumar
Data Collection & Caching using redis | Swatantra KumarData Collection & Caching using redis | Swatantra Kumar
Data Collection & Caching using redis | Swatantra Kumar
 
nodeconf-eu
nodeconf-eunodeconf-eu
nodeconf-eu
 
Cloud@ebay
Cloud@ebayCloud@ebay
Cloud@ebay
 

Similar a ubikDB intro: Building a real-time distributed database for the browser

Similar a ubikDB intro: Building a real-time distributed database for the browser (20)

Couchbase Mobile on Android
Couchbase Mobile on AndroidCouchbase Mobile on Android
Couchbase Mobile on Android
 
Why BaaS is crucial to early stage startups
Why BaaS is crucial to early stage startupsWhy BaaS is crucial to early stage startups
Why BaaS is crucial to early stage startups
 
List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022					List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022
 
MongoDB World 2016: Get MEAN and Lean with MongoDB and Kubernetes
MongoDB World 2016: Get MEAN and Lean with MongoDB and KubernetesMongoDB World 2016: Get MEAN and Lean with MongoDB and Kubernetes
MongoDB World 2016: Get MEAN and Lean with MongoDB and Kubernetes
 
Intoduction of FIrebase Realtime Database
Intoduction of FIrebase Realtime DatabaseIntoduction of FIrebase Realtime Database
Intoduction of FIrebase Realtime Database
 
Introduction to Firebase
Introduction to FirebaseIntroduction to Firebase
Introduction to Firebase
 
CloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
CloudFest Denver When Worlds Collide: HTML5 Meets the CloudCloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
CloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
 
Getting started with Firebase
Getting started with FirebaseGetting started with Firebase
Getting started with Firebase
 
Introduction, Examples - Firebase
Introduction, Examples - Firebase Introduction, Examples - Firebase
Introduction, Examples - Firebase
 
MongoDB World 2019: REST-less Mobile Apps: Why Offline-first and Sync Matters...
MongoDB World 2019: REST-less Mobile Apps: Why Offline-first and Sync Matters...MongoDB World 2019: REST-less Mobile Apps: Why Offline-first and Sync Matters...
MongoDB World 2019: REST-less Mobile Apps: Why Offline-first and Sync Matters...
 
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
 
WebSphere Connect and API Discovery
WebSphere Connect and API DiscoveryWebSphere Connect and API Discovery
WebSphere Connect and API Discovery
 
CouchDB
CouchDBCouchDB
CouchDB
 
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
 
NoSQL on the move
NoSQL on the moveNoSQL on the move
NoSQL on the move
 
Spring Into the Cloud
Spring Into the CloudSpring Into the Cloud
Spring Into the Cloud
 
Day 2 ppt
Day 2 pptDay 2 ppt
Day 2 ppt
 
Top 7 React Native Databases For App Development
Top 7 React Native Databases For App DevelopmentTop 7 React Native Databases For App Development
Top 7 React Native Databases For App Development
 
Mobile App Development With IBM Cloudant
Mobile App Development With IBM CloudantMobile App Development With IBM Cloudant
Mobile App Development With IBM Cloudant
 
Docker Training - June 2015
Docker Training - June 2015Docker Training - June 2015
Docker Training - June 2015
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

ubikDB intro: Building a real-time distributed database for the browser

  • 1. ubikDB: an introduction Building a real time distributed database for the browser 2014-02-26, budapest_py Balázs Reé ree@greenfinity.hu @reebalazs Python, JavaScript web development with open source
  • 2. Ubik is a book of Philip K. Dick. Ubik is an universal product. ! shared database = persistency + notifications syncing JSON data in the browser real-time, responsive applications
  • 3. Data and event flow • it’s a sync solution • networking through http • • • ‘service’ could be a web application Database adapters Simplest: volatile mem storage Clients Server service JSON DB adapters mem MVC… … JSON MVC…
  • 4. Firebase • http://firebase.com • “The Realtime Application Platform” • database as service, commercial • clients: web (JS), IOS / OS X, Java / Android • db management interface
  • 5. Firebase raised $5,6M in 2013. Is this possible to do in open source?
  • 6.
  • 7. Implementation choices • 2013 Pyramid sprint in Halle (a.k.a “Wasp Base”) • Substance-D • syncing client data with socket.io (via http) • server connects to database adapters to existing DB Clients Server web app JSON DB adapters mem ZODB http, socket.io Pyramid (Substance-D) gevent-socketio gunicorn JSON socket.io-client AngularJS
  • 8. Url mapping between ubikDB and ZODB • both ZODB and ubikDB has traversal based url mapping • /my_folder_1/my_document_1 • /my_folder_1/my_document_1/@title • /my_folder_1/my_document_1/@body • /my_folder_1/my_document_1/@ • /my_folder_1/my_document_1/@/into/a/deep/structure
  • 9. On the roadmap • reconnecting • optimised syncing of collections (use-case driven) • read-only (and writeable) database views • test coverage • more demos

Notas del editor

  1. beginning of a story, how did I start and what decisions I have taken
  2. PKD 1928 - 1982. A scanner darkly, Blade Runner, Total Recall. (szarnyas fejv, emlekmas) Ubik is about shifting realities. (pronounce U-bik) universality: no more REST, … it encapsulates a very generic part
  3. ubikDB is not really a DB :) Because I am thinking in connecting to web apps… Example: binding an input field to the title, 2 way binding all the way
  4. commercial
  5. is this possible - realistic - and worth to do?
  6. We have no $$$ but we are smart. And there are simple use cases. Also: it can be actually improved! api is single purpose + more possibilities because we can run our own server
  7. I’m not really implementing a DB, but more a syncing solution Substance-D: a framework for writing a Content Management Famework. It is based on Pyramid and has ZODB as batteries.