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
Launching into Orbit.js
Search
Sibiu Web Meetup
November 23, 2019
Programming
56
0
Share
Launching into Orbit.js
Sibiu Web Meetup
November 23, 2019
More Decks by Sibiu Web Meetup
See All by Sibiu Web Meetup
DevSecOps: Develop Fast & Stay Secure
sibiuwebmeetup
0
40
Git commit messages and PR etiquette
sibiuwebmeetup
0
39
Introduction to Cypress
sibiuwebmeetup
0
22
Web Application Security
sibiuwebmeetup
0
120
Zero Coupled Microservices
sibiuwebmeetup
0
21
Ethereum: Quick & Dirty
sibiuwebmeetup
0
89
Automation in Code Reviews
sibiuwebmeetup
0
110
useState(props.title)
sibiuwebmeetup
0
97
Introduction into ClojureScript
sibiuwebmeetup
0
43
Other Decks in Programming
See All in Programming
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
550
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
190
「速くなった気がする」をデータで疑う
senleaf24
0
170
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.9k
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
520
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
3
480
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
360
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
200
iOS機能開発のAI環境と起きた変化
ryunakayama
0
180
ハンズオンで学ぶクラウドネイティブ
tatsukiminami
0
120
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
260
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
250
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
160
Chasing Engaging Ingredients in Design
codingconduct
0
170
How STYLIGHT went responsive
nonsquared
100
6k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
270
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
The Language of Interfaces
destraynor
162
26k
So, you think you're a good person
axbom
PRO
2
2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
190
Transcript
LAUNCHING INTO ORBIT.JS
mercury ABOUT ME Stamate Cosmin @monovertex
venus ABOUT ORBIT.JS • Overcharged ORM • Framework for interacting
with and synchronizing various data sources • Offline/online transitions
earth INSPIRATION • “Ember in Orbit - Building apps for
Outer Space Connectivity” • Miguel Camba @cibernox • Ember{{fest}} 2019 • https://youtu.be/ b7-VegI-WX8
mars ORBIT.JS PHILOSOPHY • Everything is interchangeable • Incremental complexity
• Easy wiring • Glue APIs and strategies together with minimal friction
jupiter MAIN DIRECTIVES
io (jupiter) GOALS • Optimistic/pessimistic strategies • Plug n’ play
• Client-first • Branching/merging • Change tracking => undo/redo support
europa (jupiter) CONSTRAINTS • Disparate data sources • Compatible interfaces
• Normalized data • Notifications and change tracking
saturn PRIMITIVES
mimas (saturn) RECORD • Data in normalized form • Has
an id • Has a type • It can include other attributes or relationships
enceladus (saturn) SCHEMA • The entirety of Models • Models
describe a record type • Think of Models as classes, records as instances and of schema as domain/project
dione (saturn) SOURCE • Sources are providers and managers of
data • Each source understands how data of any given schema should be stored in their corresponding backend
tethys (saturn) TRANSFORM • A set of Operations • Operations
describe a mutation on a record • Transforms are atomic • E.g. a new record, an attribute update, a relationship deletion
rhea (saturn) QUERY • An expression to retrieve specific data
• Same meaning as in traditional database systems • Query builder
iapetus (saturn) LOG TASK BUCKET • Log: history of transforms
• Task: handle actions in async or synchronous manners • Bucket: a database backup for database state; holds transient information
hyperion (saturn) COORDINATOR • Higher order component • The Coordinator
dictates strategies • Handles wiring between a set of sources • Declarative
uranus DATA SOURCES
ariel (uranus) MEMORY • @orbit/memory • Tab-specific • Lives in
memory allocated for the JS process • Immutable data structures • Cheap forking/merging
miranda (uranus) JSONAPI • @orbit/jsonapi • JSON:API is a set
of conventions for building APIs with data formatted as JSON objects • Modern standard that allows for better integration
umbriel (uranus) INDEXEDDB • @orbit/indexeddb • Client-side database • Provides
a persistent, domain-specific structured storage solution • Especially useful for PWAs, if available
titania (uranus) LOCAL STORAGE • @orbit/local-storage • Synchronous storage •
Designed for smaller amounts of data • Can be a fallback from indexeddb, but performance can be impacted
oberon (uranus) OTHER SOURCES • Adapters for other sources can
be easily implemented • Custom REST APIs • orbitdb/orbit-db - peer-to-peer database • Google Drive - a spreadsheet or a JSON file • Local file system (nodejs/native apps)
neptune Q&A
pluto THANK YOU!