Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Future of Data in Ember
Search
Dan Gebhardt
March 14, 2018
Programming
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Future of Data in Ember
Presented at EmberConf 2018.
Dan Gebhardt
March 14, 2018
More Decks by Dan Gebhardt
See All by Dan Gebhardt
An Introduction to the JSON:API Specification
dgeb
5
910
Worker power!
dgeb
0
540
Modern Ember
dgeb
0
180
Give Apps Online Superpowers by Optimizing them for Offline
dgeb
2
240
Overview of Orbit.js
dgeb
0
160
Introducing Ember Engines
dgeb
4
3.7k
Introducing JSON API
dgeb
5
810
Fault Tolerant UX
dgeb
4
1k
Ambitious Data Flows with Ember.js and Orbit.js
dgeb
10
1.7k
Other Decks in Programming
See All in Programming
オーケストレーション記述言語 Katari
yukikurage
0
220
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
270
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
130
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
410
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
0
130
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
110
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
390
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
330
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
180
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.3k
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
270
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
320
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Context Engineering - Making Every Token Count
addyosmani
9
1.3k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
The agentic SEO stack - context over prompts
schlessera
0
990
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
Transcript
the future of data in ember dan gebhardt @dgeb
the future of data in ember is __________________________
the future of data in ember is __________________________ web standards
the future of data in ember is __________________________ ahead of
web standards
the future of data in ember is __________________________ realtime
RESTful the future of data in ember is __________________________
the future of data in ember is __________________________ graph-based
operations the future of data in ember is __________________________
offline the future of data in ember is __________________________
what you need it to be the future of data
in ember is __________________________
ember needs to meet you where you are and help
you get where you want to be
Orbit Fetch + JSON Ember Data ember-apollo-client emberfire ember-redux
None
requirement fetch and display data about some of your favorite
emberistas
server-side solution GET /api/v1/contacts GET /api/v1/contacts/:contact_id
client-side solution Fetch + JSON
None
None
requirement work offline
None
solution service workers
None
None
$ ember install ember-service-worker $ ember install ember-service-worker-index $ ember
install ember-service-worker-asset-cache $ ember install ember-service-worker-cache-fallback
None
None
None
None
requirement admin pages to edit emberistas (does not need to
work offline)
server-side solution GET /api/v2/contacts GET /api/v2/contacts/:contact_id POST /api/v2/contacts PATCH /api/v2/contacts/:contact_id
DELETE /api/v2/contacts/:contact_id
client-side solution Ember Data
None
None
None
requirement everything needs to work offline
server-side solution GET /api/v2/contacts GET /api/v2/contacts/:contact_id POST /api/v2/contacts PATCH /api/v2/contacts/:contact_id
DELETE /api/v2/contacts/:contact_id
client-side solution Orbit
None
None
Orbit Fetch + JSON Ember Data
how do we allow apps to evolve with the least
friction?
None
None
Capabilities Complexity
None
None
None
Config
None
None
None
February 2013
February 2013
None
None
ActiveModel Serializers (Rails) Ember Data + RestAdapter
ActiveModel Serializers (Rails) Ember Data + RestAdapter
May 2013 Initial draft May 2015 v1.0
ActiveModel Serializers (Rails) Ember Data + JSONAPIAdapter
JSONAPI Resources (Rails) Ember Data + JSONAPIAdapter
JSONAPI Resources (Rails) Orbit + JSONAPISource
fast_jsonapi (Ruby) Orbit + JSONAPISource
50+ server libs 14 languages 50+ client libs 14 languages
None
composable, well-defined interfaces Document Structure Protocol Usage +
monolithic full-stack solution back end front end
back end front end single point of connection
back end front end new degree of freedom
back end front end interchangeable components
None
HTTP compliant Basic CRUD
compound documents hypermedia links filtering sparse fieldsets etc.
v1.1 operations local identities profiles
None
Ember Applications Ember Data
composability + extensibility
store adapter serializer
None
tight coupling store model
store model addons
None
store model addons RecordData interface
new interfaces unlock experimentation
unlocked by RecordData: POJO models schemaless models immutable data structures
static analysis
None
store models basic CRUD
store
partial records embedded records changesets
???????????????
None
data access and synchronization
universal data layer
None
None
u s e c a s e s
OFFLINE
CLIENT-FIRST DEVELOPMENT
PLUGGABLE SOURCES
DATA SYNCHRONIZATION
EDITING CONTEXTS
UNDO / REDO
OPTIMISTIC UI
b a s i c s
SOURCES
SYNCHRONIZES DATA BETWEEN SOURCES
FLOW CONTROL
s t o re
CHANGE TRACKING
IMMUTABLE DATA
None
single source schema
multiple sources coordination strategies state buckets
custom sources new query ops new update ops
how does orbit fit with ember data?
store models basic CRUD
partial records embedded records changesets
???????????????
offline store forking optimistic UIs undo / redo
offline store forking optimistic UIs undo / redo
Orbit : Ember Data :: Glimmer : Ember
Orbit : Ember Dat :: Glim :
ember data can provide orbit's capabilites in a convention-driven package
orbit and its ecosystem can provide a laboratory for experimentation
"The Future"
GraphQL usage will continue to grow. Apollo will continue to
innovate.
REST+ solutions, like JSON:API 1.1, will also grow.
The operations primitive will be adopted across the stack.
Static analysis will improve runtime efficiency.
Immutable data structures will see increased internal usage.
Demand for offline PWAs will grow in order to compete
with native apps.
Orbit will see continued growth across the frontend and in
Node.
You will be able to incrementally adopt new capabilities in
your application as you need them.
None
None
None
Config
None
None
None
None
None
let's build great things together!