SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Camlistore.org
Your, Personal Datastore for Life
A side project in GoLang by Brad Fitzpatrick. Maintainer Mathieu Lonjaret.
Reprised by Clive Boulton for Google Developer Groups NYC. Jan 9, 2017.
https://www.meetup.com/gdgnyc/events/234963670/
Entrepreneurs: personal memories are priceless.
Demo
How Brad got Camlistore going
Brad Fitzpatrick @bradfitz is a member of the Go team at Google, working
primarily on the standard library.
● Brad wanted to create a system to store all of the content he’s created,
which is currently scattered across multiple sites and disks. He started
hacking in this directory:
$ Content Addressable Multi Level Indexed Storage = Camlistore
Camlistore Goals
● Content-addressable
● Searchable
● Web UI
● Extensibility: FUSE, etc.
Majority of Camlistore is pure Go. (Ed. note: It’s a great repo to read and learn
from.)
Content-addressable advantages
● Sync any which way, no conflicts
● (merge resolution at higher layers)
● corruption verification/repair
● de-duping
Content Addressable: What things are named depends on their content. Two
identical things have the same name. For example, the "name" or "key" for the
data is the SHA-1 for the data, ala git.
Multi-level
● blob storage
● indexing
● search
● web UI, FUSE, CU, apps are just clients of search + blob storage
Multi-Layer: The whole storage stack is built out of several layers. The blob
store sits on the bottom, and only knows about bytes, and access is via the
SHA-1 of those bytes. Things that you might store (Files, directories, sets,
collections of tweets, social graphs, etc) build on top of the blob store by
additional blobs that hold pointers to data blobs. Again, it's sort of like git. A
front-end might sit on top of that abstraction.
Indexed
● ask the indexer
● tags
● search = find
Indexed: blobs of JSON that have a few special attributes are recognized and
indexed. So, you might have a bunch of blobs with these special attributes (ie,
"tag") and be able to ask the indexer "Give me all blobs with tag equal to foo",
rather than having to search through the blobs directly.
Overview
Permanode
random #
Set-attribute
camliContent
Directory
JSON
File
Bytes
File
Bytes
File
Bytes
File
Bytes
Directory
JSON
File
JSON
File
JSON
unassigned blobs
object
Set-attribute
camliContent
Logically
Features of @camlistore
● Personal Datastore for life: Like Git for Social Backup.
● Security is private by default (share if you wish, more sharing in v.10)
● FUSE file system
● Data versioning, time travel
● Snappy UI (react.js like Instagram moving to gopherjs)
● Clients in JavaScript, Java, Obj-C,
● Deploy Web, Phone, Home, S3, GCE (Docker)
● Targets Desktop Chrome, Firefox, Safari, Edge (last two stable versions).
● Targets Safari and Chrome on Android and iOS tablets (last two stable ver)
Why Brad chose Go for Camlistore
● He considered a few other candidate languages:
● Perl and Python: too slow and single-threaded
● C++ and Java: tedious and not fun (slow builds)
● Go? Yeah.
As Brad hacked on Camlistore, he realized he needs to implement support for
various formats and protocols (like mime/multipart) and improve stdlib
packages (like os/exec nee exec, database/sql, etc.).
Camlistore ⇔ 20 per cent time (now a side project)
East deployment to GCP (now)
Makes firing up your own Camlistore server on GCE+MySQL+Cloud Storage a few clicks from a web app, using
CoreOS, Docker, and the various Google Cloud Platform APIs..
Visit https://camlistore.org/launch/ which lets you create your own camlistore instance on GCE. The Camlistore website
will say:
Step 1) go to https://console.developers.google.com/project
Step 2) click "Create Project". remember its name.
Step 3) Enable billing. (tell Google your credit card info) [Ed note. Dev’s sign up for GCP get $x00 credit for 60 days]
Step 4) Enter your project name: [ ]
[ Create ]
You click Create, and then we send you on an OAuth2 voyage to get access to create VMs & DBs & Buckets on your
behalf, and then we create it all, including creating a minimal CoreOS VM that boots right up into a tiny Docker
container just running camlistore. [Ed note, the API forms are also Camlistore open source]
Web UI
● React → gopherjs
● Infinite scroll
● Lightbox
● HTML history API
● Search
…
Camlistore Android app: demo time!
https://play.google.com/store/apps/details?id=org.camlistore
Command line tools $
● camget (blobs, trees, shares)
● camput (blobs, files, dirs, shares, permanodes, claims)
● camtool {init, sync, init, describe, claims…)
● cammount
Camlistore is pure Go: (no C)
● HTTP client/server, TLS, AES, …
● JSON, XML
● WebSockets
● SMTP server (coming)
● Rolling checksums
● GIF/JPG/PNG en/dec, resizing, thumbnails
● FUSE
● Notification bus
● database/sql, MySQL, Postgres, MongoDB
● OpenPGP signing & verification
Ed note: NYC is adoption center for Blockchain technologies, also written in GoLang
More
@camlistore
https://camlistore.org
Reprised by clive boulton twitter @iC

Mais conteúdo relacionado

Semelhante a Camlistore reprise at Google NYC

How dojo works
How dojo worksHow dojo works
How dojo worksAmit Tyagi
 
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Esteve Castells
 
Dojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastDojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastGabriel Hamilton
 
Sandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedSandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedMinded Security
 
Dojo: Getting Started Today
Dojo: Getting Started TodayDojo: Getting Started Today
Dojo: Getting Started TodayGabriel Hamilton
 
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...MongoDB
 
Content Mangement Systems and MongoDB
Content Mangement Systems and MongoDBContent Mangement Systems and MongoDB
Content Mangement Systems and MongoDBMitch Pirtle
 
DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015Chris Gates
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Derek Jacoby
 
Dojo javascript toolkit
Dojo javascript toolkit Dojo javascript toolkit
Dojo javascript toolkit Predhin Sapru
 
Meteor Day Athens (2014-11-07)
Meteor Day Athens (2014-11-07)Meteor Day Athens (2014-11-07)
Meteor Day Athens (2014-11-07)svub
 
20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engverNaoki Sekiguchi
 
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...Semrush
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklum Ukraine
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsClay Smith
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018patrickstox
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkitPaul Jensen
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 

Semelhante a Camlistore reprise at Google NYC (20)

SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 
How dojo works
How dojo worksHow dojo works
How dojo works
 
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
 
Dojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastDojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, Fast
 
Sandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedSandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession Learned
 
Dojo: Getting Started Today
Dojo: Getting Started TodayDojo: Getting Started Today
Dojo: Getting Started Today
 
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
 
Content Mangement Systems and MongoDB
Content Mangement Systems and MongoDBContent Mangement Systems and MongoDB
Content Mangement Systems and MongoDB
 
DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9
 
Dojo javascript toolkit
Dojo javascript toolkit Dojo javascript toolkit
Dojo javascript toolkit
 
Meteor Day Athens (2014-11-07)
Meteor Day Athens (2014-11-07)Meteor Day Athens (2014-11-07)
Meteor Day Athens (2014-11-07)
 
20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver20150317 firefox os_studymtg_engver
20150317 firefox os_studymtg_engver
 
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build Artifacts
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Mais de clive boulton

Seattle Scalability meetup intro slides, Jan 22, 2014
Seattle Scalability meetup intro slides, Jan 22, 2014Seattle Scalability meetup intro slides, Jan 22, 2014
Seattle Scalability meetup intro slides, Jan 22, 2014clive boulton
 
Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...
Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...
Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...clive boulton
 
Seattle scalability meetup intro slides 23 oct 2013
Seattle scalability meetup intro slides 23 oct 2013Seattle scalability meetup intro slides 23 oct 2013
Seattle scalability meetup intro slides 23 oct 2013clive boulton
 
Seattle scalability meetup intro slides 24 july 2013
Seattle scalability meetup intro slides 24 july 2013Seattle scalability meetup intro slides 24 july 2013
Seattle scalability meetup intro slides 24 july 2013clive boulton
 
Seattle Scalability Meetup intro pptx - June 26
Seattle Scalability Meetup intro pptx - June 26Seattle Scalability Meetup intro pptx - June 26
Seattle Scalability Meetup intro pptx - June 26clive boulton
 
Seattle scalability meetup intro ppt May 22
Seattle scalability meetup intro ppt May 22Seattle scalability meetup intro ppt May 22
Seattle scalability meetup intro ppt May 22clive boulton
 
Patent Trollls gonna kill VRM?
Patent Trollls gonna kill VRM?Patent Trollls gonna kill VRM?
Patent Trollls gonna kill VRM?clive boulton
 
Seattle scalability meetup March 27,2013 intro slides
Seattle scalability meetup March 27,2013 intro slidesSeattle scalability meetup March 27,2013 intro slides
Seattle scalability meetup March 27,2013 intro slidesclive boulton
 
Seattle scalability meetup intro
Seattle scalability meetup introSeattle scalability meetup intro
Seattle scalability meetup introclive boulton
 
Seattle Scalability Meetup | Accumulo and WhitePages
Seattle Scalability Meetup | Accumulo and WhitePagesSeattle Scalability Meetup | Accumulo and WhitePages
Seattle Scalability Meetup | Accumulo and WhitePagesclive boulton
 
Seattle Scalability - Sept Meetup
Seattle Scalability - Sept MeetupSeattle Scalability - Sept Meetup
Seattle Scalability - Sept Meetupclive boulton
 
Seattle montly hadoop nosql scalability meetup
Seattle montly hadoop nosql scalability meetupSeattle montly hadoop nosql scalability meetup
Seattle montly hadoop nosql scalability meetupclive boulton
 
Leapfrogging with legacy
Leapfrogging with legacyLeapfrogging with legacy
Leapfrogging with legacyclive boulton
 
Whole Chain Traceability, pulling a Kobayashi Maru.
Whole Chain Traceability, pulling a Kobayashi Maru. Whole Chain Traceability, pulling a Kobayashi Maru.
Whole Chain Traceability, pulling a Kobayashi Maru. clive boulton
 
Whole Chain Traceability Consortium
Whole Chain Traceability ConsortiumWhole Chain Traceability Consortium
Whole Chain Traceability Consortiumclive boulton
 
Seattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / CassandraSeattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / Cassandraclive boulton
 
Seattle Scalability Meetup - Ted Dunning - MapR
Seattle Scalability Meetup - Ted Dunning - MapRSeattle Scalability Meetup - Ted Dunning - MapR
Seattle Scalability Meetup - Ted Dunning - MapRclive boulton
 

Mais de clive boulton (20)

Riak TS
Riak TSRiak TS
Riak TS
 
Ignitepii2014
Ignitepii2014Ignitepii2014
Ignitepii2014
 
Seattle Scalability meetup intro slides, Jan 22, 2014
Seattle Scalability meetup intro slides, Jan 22, 2014Seattle Scalability meetup intro slides, Jan 22, 2014
Seattle Scalability meetup intro slides, Jan 22, 2014
 
Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...
Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...
Seattle Scalability meetup intro slides - Dec 4, 2013 - Scaling SQL + Scaling...
 
Seattle scalability meetup intro slides 23 oct 2013
Seattle scalability meetup intro slides 23 oct 2013Seattle scalability meetup intro slides 23 oct 2013
Seattle scalability meetup intro slides 23 oct 2013
 
Seattle scalability meetup intro slides 24 july 2013
Seattle scalability meetup intro slides 24 july 2013Seattle scalability meetup intro slides 24 july 2013
Seattle scalability meetup intro slides 24 july 2013
 
Seattle Scalability Meetup intro pptx - June 26
Seattle Scalability Meetup intro pptx - June 26Seattle Scalability Meetup intro pptx - June 26
Seattle Scalability Meetup intro pptx - June 26
 
Seattle scalability meetup intro ppt May 22
Seattle scalability meetup intro ppt May 22Seattle scalability meetup intro ppt May 22
Seattle scalability meetup intro ppt May 22
 
Patent Trollls gonna kill VRM?
Patent Trollls gonna kill VRM?Patent Trollls gonna kill VRM?
Patent Trollls gonna kill VRM?
 
Seattle scalability meetup March 27,2013 intro slides
Seattle scalability meetup March 27,2013 intro slidesSeattle scalability meetup March 27,2013 intro slides
Seattle scalability meetup March 27,2013 intro slides
 
Seattle scalability meetup intro
Seattle scalability meetup introSeattle scalability meetup intro
Seattle scalability meetup intro
 
Seattle Scalability Meetup | Accumulo and WhitePages
Seattle Scalability Meetup | Accumulo and WhitePagesSeattle Scalability Meetup | Accumulo and WhitePages
Seattle Scalability Meetup | Accumulo and WhitePages
 
Seattle Scalability - Sept Meetup
Seattle Scalability - Sept MeetupSeattle Scalability - Sept Meetup
Seattle Scalability - Sept Meetup
 
Seattle montly hadoop nosql scalability meetup
Seattle montly hadoop nosql scalability meetupSeattle montly hadoop nosql scalability meetup
Seattle montly hadoop nosql scalability meetup
 
Leapfrogging with legacy
Leapfrogging with legacyLeapfrogging with legacy
Leapfrogging with legacy
 
Whole Chain Traceability, pulling a Kobayashi Maru.
Whole Chain Traceability, pulling a Kobayashi Maru. Whole Chain Traceability, pulling a Kobayashi Maru.
Whole Chain Traceability, pulling a Kobayashi Maru.
 
Whole Chain Traceability Consortium
Whole Chain Traceability ConsortiumWhole Chain Traceability Consortium
Whole Chain Traceability Consortium
 
Seattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / CassandraSeattle Scalability - GigaSpaces / Cassandra
Seattle Scalability - GigaSpaces / Cassandra
 
Wspm
WspmWspm
Wspm
 
Seattle Scalability Meetup - Ted Dunning - MapR
Seattle Scalability Meetup - Ted Dunning - MapRSeattle Scalability Meetup - Ted Dunning - MapR
Seattle Scalability Meetup - Ted Dunning - MapR
 

Ú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 FMESafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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 DiscoveryTrustArc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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 educationjfdjdjcjdnsjd
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Camlistore reprise at Google NYC

  • 1. Camlistore.org Your, Personal Datastore for Life A side project in GoLang by Brad Fitzpatrick. Maintainer Mathieu Lonjaret. Reprised by Clive Boulton for Google Developer Groups NYC. Jan 9, 2017. https://www.meetup.com/gdgnyc/events/234963670/
  • 3.
  • 5. How Brad got Camlistore going Brad Fitzpatrick @bradfitz is a member of the Go team at Google, working primarily on the standard library. ● Brad wanted to create a system to store all of the content he’s created, which is currently scattered across multiple sites and disks. He started hacking in this directory: $ Content Addressable Multi Level Indexed Storage = Camlistore
  • 6. Camlistore Goals ● Content-addressable ● Searchable ● Web UI ● Extensibility: FUSE, etc. Majority of Camlistore is pure Go. (Ed. note: It’s a great repo to read and learn from.)
  • 7. Content-addressable advantages ● Sync any which way, no conflicts ● (merge resolution at higher layers) ● corruption verification/repair ● de-duping Content Addressable: What things are named depends on their content. Two identical things have the same name. For example, the "name" or "key" for the data is the SHA-1 for the data, ala git.
  • 8. Multi-level ● blob storage ● indexing ● search ● web UI, FUSE, CU, apps are just clients of search + blob storage Multi-Layer: The whole storage stack is built out of several layers. The blob store sits on the bottom, and only knows about bytes, and access is via the SHA-1 of those bytes. Things that you might store (Files, directories, sets, collections of tweets, social graphs, etc) build on top of the blob store by additional blobs that hold pointers to data blobs. Again, it's sort of like git. A front-end might sit on top of that abstraction.
  • 9. Indexed ● ask the indexer ● tags ● search = find Indexed: blobs of JSON that have a few special attributes are recognized and indexed. So, you might have a bunch of blobs with these special attributes (ie, "tag") and be able to ask the indexer "Give me all blobs with tag equal to foo", rather than having to search through the blobs directly.
  • 12. Features of @camlistore ● Personal Datastore for life: Like Git for Social Backup. ● Security is private by default (share if you wish, more sharing in v.10) ● FUSE file system ● Data versioning, time travel ● Snappy UI (react.js like Instagram moving to gopherjs) ● Clients in JavaScript, Java, Obj-C, ● Deploy Web, Phone, Home, S3, GCE (Docker) ● Targets Desktop Chrome, Firefox, Safari, Edge (last two stable versions). ● Targets Safari and Chrome on Android and iOS tablets (last two stable ver)
  • 13. Why Brad chose Go for Camlistore ● He considered a few other candidate languages: ● Perl and Python: too slow and single-threaded ● C++ and Java: tedious and not fun (slow builds) ● Go? Yeah. As Brad hacked on Camlistore, he realized he needs to implement support for various formats and protocols (like mime/multipart) and improve stdlib packages (like os/exec nee exec, database/sql, etc.). Camlistore ⇔ 20 per cent time (now a side project)
  • 14. East deployment to GCP (now) Makes firing up your own Camlistore server on GCE+MySQL+Cloud Storage a few clicks from a web app, using CoreOS, Docker, and the various Google Cloud Platform APIs.. Visit https://camlistore.org/launch/ which lets you create your own camlistore instance on GCE. The Camlistore website will say: Step 1) go to https://console.developers.google.com/project Step 2) click "Create Project". remember its name. Step 3) Enable billing. (tell Google your credit card info) [Ed note. Dev’s sign up for GCP get $x00 credit for 60 days] Step 4) Enter your project name: [ ] [ Create ] You click Create, and then we send you on an OAuth2 voyage to get access to create VMs & DBs & Buckets on your behalf, and then we create it all, including creating a minimal CoreOS VM that boots right up into a tiny Docker container just running camlistore. [Ed note, the API forms are also Camlistore open source]
  • 15. Web UI ● React → gopherjs ● Infinite scroll ● Lightbox ● HTML history API ● Search … Camlistore Android app: demo time! https://play.google.com/store/apps/details?id=org.camlistore
  • 16. Command line tools $ ● camget (blobs, trees, shares) ● camput (blobs, files, dirs, shares, permanodes, claims) ● camtool {init, sync, init, describe, claims…) ● cammount
  • 17. Camlistore is pure Go: (no C) ● HTTP client/server, TLS, AES, … ● JSON, XML ● WebSockets ● SMTP server (coming) ● Rolling checksums ● GIF/JPG/PNG en/dec, resizing, thumbnails ● FUSE ● Notification bus ● database/sql, MySQL, Postgres, MongoDB ● OpenPGP signing & verification Ed note: NYC is adoption center for Blockchain technologies, also written in GoLang