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
1
810
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
Tweet
Share
More Decks by Siddharth Kothari
See All by Siddharth Kothari
Data Streams with Elasticsearch
siddharthlatest
0
130
Appbase.io - Customer Deck
siddharthlatest
0
140
Appbase.io - Investor Deck
siddharthlatest
0
330
Meteor Talk: Building Mitter
siddharthlatest
1
99
Data Streams on ElasticSearch
siddharthlatest
0
160
Building a streaming database service
siddharthlatest
1
220
Scalability Best Practices
siddharthlatest
0
180
Other Decks in Technology
See All in Technology
roppongirb_20250911
igaiga
1
210
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
270
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
380
Flutterでキャッチしないエラーはどこに行く
taiju59
0
230
Kiroと学ぶコンテキストエンジニアリング
oikon48
6
9.9k
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
150
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
1
360
ガチな登山用デバイスからこんにちは
halka
1
240
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
350
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
200
S3アクセス制御の設計ポイント
tommy0124
3
190
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
220
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Producing Creativity
orderedlist
PRO
347
40k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Context Engineering - Making Every Token Count
addyosmani
1
33
BBQ
matthewcrist
89
9.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
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