Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Appbase - A realtime events-based document store
Search
Siddharth Kothari
March 05, 2015
Technology
840
1
Share
Appbase - A realtime events-based document store
Redisconf '15 talk: Using Redis to build a document store with a streaming events server.
Siddharth Kothari
March 05, 2015
More Decks by Siddharth Kothari
See All by Siddharth Kothari
Data Streams with Elasticsearch
siddharthlatest
0
140
Appbase.io - Customer Deck
siddharthlatest
0
140
Appbase.io - Investor Deck
siddharthlatest
0
340
Meteor Talk: Building Mitter
siddharthlatest
1
110
Data Streams on ElasticSearch
siddharthlatest
0
160
Building a streaming database service
siddharthlatest
1
220
Scalability Best Practices
siddharthlatest
0
190
Other Decks in Technology
See All in Technology
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
990
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
210
AIが変えた"品質の守り方"
kkakizaki
13
5k
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
16
15k
oracle-to-databricks-migration-with-llm-and-dbt
casek
0
300
大規模環境でどのように監視を実現する?
yuobayashi
1
260
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.7k
Kaigi Effect Effect
ngtyuk
0
110
「使われるデータ基盤」を目指してデータアナリストとワークショップをやった話
jackojacko_
2
910
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
870
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
150
テストコードのないプロジェクトにテストを根付かせる
tttol
0
210
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Everyday Curiosity
cassininazir
0
210
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Writing Fast Ruby
sferik
630
63k
What's in a price? How to price your products and services
michaelherold
247
13k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
190
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Six Lessons from altMBA
skipperchong
29
4.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Transcript
Appbase: A Realtime events-based document index store - Siddharth Kothari
@siddharthlatest
Javascript foobar, Database enthusiast I know R+L = J CEO
at appbase.io
Why?
Why? relational data vs linked data.
Imagine…
Imagine… 1) Document store schema
Imagine… 1) Document store schema 2) Dynamic References
Imagine… 1) Document store schema 2) Dynamic References 3) All
JSON
Hint: Is this MongoDB?
Hint: It’s not MongoDB. This is Redis!
Appbase: A Realtime events-based document index store
Appbase: A Realtime events-based document index store 1) Document store
schema 2) Dynamic References 3) All JSON
Appbase: A Realtime events-based document index store 1) Document store
schema 2) Dynamic References 3) All JSON 4) Realtime events - Subscribe to updates
Pulling a Mongo! Here’s how: Document store schema Collection
Pulling a Mongo! Here’s how: Document store schema { “item”:
“pencil”, “qty”: 500, “type”: “no.3”} Collection Document
Pulling a Mongo! Here’s how: Embedded Documents { “item”: “pencil”,
“qty”: 500, “type”: “no.3”, “foo”: { “embedded_foo”: “bar” } } Embedded Property
Pulling a Mongo! Here’s how: Adding References { “item”: “pencil”,
“qty”: 500, “type”: “no.3”, “foo”: { “embedded_foo”: “bar” }, “/ref1”: “user/item#3” } Reference user item#3
Pulling a Mongo! Here’s how: Adding References { “item”: “pencil”,
…, …, “/ref1”: { “_collection”: “user”, “_id”: “item#3”, “ref_prop#1”: “something” } } Reference Adding the doc directly
Beyond Document Store! Introducing Paths { “_id”: “pencil”, “_collection”: “stationary”,
“foo”: { “embedded_foo”: “bar” }, “/ref1”: “user/item#3” } Reference user item#3
Beyond Document Store! Introducing Paths { “_id”: “pencil”, “_collection”: “stnry”,
“foo”: { “embedded_foo”: “bar” }, “/ref1”: “user/item#3” } Reference user item#3 Two paths: 1. /user/item#3 2. /stnry/pencil/ref1
Beyond Document Store! Introducing Paths Two paths: 1. /user/item#3 2.
/stnry/pencil/ref1
Beyond Document Store! Introducing Paths a b c d 1.
a/b/c/d, 2. z/b/c/d, 3. q/w/d 4. … z q w
So far… Document store with true references a b c
d z q w { “_id”: “d”, “_collection”: “alpha”, “depth”: “4” }
Taking advantage of true referencing Event subscriptions:
{ “_id”: “d”, “_collection”: “alpha”, “depth”: “4” } Taking advantage
of true referencing a b z Event subscriptions: 1.Property updates
{ “_id”: “d”, “_collection”: “alpha”, “depth”: “4” } Taking advantage
of true referencing a b z c d q w Event subscriptions: 1.Property updates 2.Reference updates
Open Source
Open Source License: Apache 2 v0.1 - Brave Souls
Open Source appbaseio.github.io/appbase-redis License: Apache 2 v0.1 - Brave Souls
Live Demo
Live Demo /users/user_542 Create a new document
Live Demo /users/user_542 Create a new document Assign some properties
Live Demo /users/user_542 Create a new document Assign some properties
{ “em”: “
[email protected]
”, “points”: 5321, “/friends”: … }
Live Demo /users/user_542 Create a new document Assign some properties
{ “em”: “
[email protected]
”, “points”: 5321, “/friends”: … } Watch it Stream
API Spec Comes with a HTTP API server
API Spec Comes with a HTTP API server PATCH /{collection}/{document}/[path]
GET /{collection}/{document}/[path] ?stream=true
API Spec Comes with a HTTP API server PATCH GET
https://github.com/appbaseio/ appbase-redis/ blob/master/ index.js Entire Spec
API Spec Request Body
Roadmap to v1.0 1. Battle Testing Unit Tests, Better Code
Perf Tests
Roadmap to v1.0 1. Battle Testing Unit Tests, Better Code
Perf Tests 2. Scaling Use Pushpin = Message Queue + Streaming
Roadmap to v1.0 1. Battle Testing Unit Tests, Better Code
Perf Tests 2. Scaling Use Pushpin = Message Queue + Streaming 3. Rich Querying More filters, aggregation queries
Thank you! Questions? @siddharthlatest