SlideShare a Scribd company logo
1 of 35
Download to read offline
The Revolution Will Not
Be Centralized
edward@eaf4.com
ef4
eaf4
Edward Faulkner
This is a talk about re-decentralizing the web. But I am going to take a roundabout path to getting there that starts much closer to what this community is already doing.
A framework for creating
ambitious web applications
What is the Ember community’s favorite adjective?
ambitious
What is ambitious depends on your context.
When you are only one year old, climbing the playground is ambitious!
When you are six years old, hiking up mountains is ambitious.
http://bit.ly/2yklMHdDecember 14, 2011
When Ember was born, just the idea of creating desktop-class applications in the browser was ambitious.

We are extremely successful in that space: Apps with big responsibilities and complicated requirements.
We have not stopped being ambitious. Yesterday we heard a lot of details about ongoing Ember work that I will not repeat in detail. But let’s take a quick glance at the
high level amount of activity.
Two interesting things here: 

The first is how far back glimmer-vm goes! It has undergone continuous evolution from the point when it was called htmlbars.

The second is that recent velocity is very high.
Lest anybody worry that glimmer.js is consuming all of our dev resources, this makes it clear that it is not.

But it is definitely a high-value increment on top of everything else.
And we see that our latest month is among the handful of most ambitious in the project’s history.

Things are really moving! On a codebase that is not young. That’s a robust sign of health!
ambitious
ambitious along
which dimensions?
•Easier development
•Easier learning
•Faster code in more environments
Easier development ?
The Werewolf of Eschenbach, Germany: line engraving, 1685
This illustration accompanies the classic essay “No Silver Bullet” by Fred Brooks written in 1986.

Essential vs accidental complexity. Limits to how much we can reduce essential complexity.
• Only so much complexity can fit per brain
• Communication cost goes up as N^2 when
you add more brains.
How do make software development easier? The first answer is, you don’t.

Fundamental limits.
Only Known Workaround:
Higher-Level Abstractions
return solveMyProblem();
fetch('https://emberfest.eu/')
No such thing as too much magic. Only good and bad abstractions.

Which is part of the vital role of frameworks — to be really abstract, you need to solve many people’s problem. You need a community.
The ember add-on ecosystem is the where we can build abstractions higher than Ember itself. In a sense, Ember exists to allow the add-on ecosystem to flourish, just as
a kernel exists to allow an application ecosystem to flourish and cooperate.

My topic today is how to let add-ons grow into something more powerful.
Storage
Server App
Client App
PostgreSQL, MySQL, Redis, Elasticsearch, s3, etc
Rails, Django, Struts, Express, etc
Your code
Your code
Glimmer, Ember, etc
Addons
We already get a large amount of reuse. It’s why we can build what we do today already. 

Notice that the horizontal boundaries are natural places where both open source projects and commodity services tend to thrive. People are used to integrating across
them.

Vertical boundaries are harder. A lot of the custom code we write today is trying to integrate things across vertical boundaries.
Server App
Client App
Your code
Glimmer, Ember, etc
Addons
Storage
@cardstack/hub
(Legacy)
This is the Cardstack architecture. You may have seen my Emberconf talk, where I focused mostly on what Cardstack can add inside an Ember app. Here I will focus
more on the broader architecture.

Cardstack Hub is a node-based server. It gets compiled from the set of Cardstack plugins in your package.json. 

It sits in front of your data sources, which can include your existing application servers.
Server AppStorage
@cardstack/hub
(Legacy)
Client App
Your code
Addons
Glimmer, Ember, etc
Addon
A single npm package can be an ember add-on and a cardstack plugin simultaneously. It can provide ember components, etc. It can also provide Features to Cardstack
hub.

This is a step toward making add-ons that can behave more like mini applications. For example, instead of just a calendar UI, why not install a whole calendar system,
including storage and search? An invoice builder? A CRM?
Data Source Plugins
Middleware Plugins
Dockerized
Services
The Hub doesn’t want to own your data. It serves as a command and query tier (Command Query Responsibility Segregation) in front of your existing data sources.
Data source plugins can index, write, and search data sources.

Middleware plugins expose data out to client apps. JSON:API is the most relevant example for us.

Cardstack plugins that need more than just pure Javascript within the node-based Hub can declare that they depend on arbitrary Docker images, which will be spun up
automatically. Here I’m showing Elasticsearch: add a single package, gain a full search engine.

Data source plugins are not unlike ember-data adapters, moved to the server. But on the server they are more powerful. And we can hide their complexity from the
client app.
•authenticator
•code-generator
•constraint-type
•field-type
Hub plugins are well-typed
•indexer
•messenger
•middleware
•searcher
•writer
Some plugin systems encourage you to inject arbitrary code into arbitrary places. That hits composition limits, and it makes it much harder to write plugins.

The hub’s plugins are well-typed, meaning they expose specific types of Features that each do one specific thing. Which makes them easier to write and keeps the
whole system more compose-able.
So what does all this have to do with cards?

Everything.
As a visual design language, Card UI is already ubiquitous. The newly-redesigned iOS app store demonstrates card motion and affordances perfectly.

But card-based design is capable of more. It’s a design system that fits naturally with component composition. Users can move in and out of rich experiences that
each have totally different internal implementations, but follow enough design conventions around their edges so that they come together as a coherent experience.

And when you can pass interactive cards from person to person, you can support organically growing workflows.
Custom code
Shared code
Card UI lets us attack one of the critical problems on the web today. Centralization. Walled gardens. Too hard to integrate into coherent experiences. Stifled innovation.

Every app has a wide, custom layer in between the user and their data. This gives it total control, but it is also a huge burden. You can’t focus on just the value-
added parts that are special. You write yet another login screen, menu system, content management feature, media manager, authorization system, scheduling system,
etc.
When everyone does this, users get disjointed experiences. Too many logins. Forced to choose between staying in one walled garden where at least everything works
together vs the freedom and innovation of a more open web. Developers can’t safely invest in a platform that’s wholly owned by someone else.

Businesses feel this acutely. They frequently face build-vs-buy dilemmas. They can’t buy features a la carte, and they can’t easily recover from the wrong choice
because their data gets locked in.

Every app locks your data in. Which is clearly bad for users. But isn’t it good for us, who make and sell software? No, only for the biggest, established, billion dollar
vendors. Lock-in makes small, innovative teams too risky to trust with Important Software.
When data and hosting are all controlled by one company, it’s a high risk situation. So only very big, established vendors can sell Important Software.

And important software is where most of the money is.
Data Sources
Card Apps
So how do we grow an open ecosystem with lower risk and less lock-in?

It’s deliberate that the Hub exists so that Cards can be portable across data sources. It enables a much more distributed way of writing apps. And the massive open
source investment in making software easier and easier to deploy to commodity hosting means we can make it practical for a wider audience of organizations to control
their own hosting.

You can still write a normal, self-contained app if you want to. But you can go faster and attack bigger Important Software markets if you don’t go alone.

This isn’t about trying to convince people to decentralize out of idealism. This is about leapfrogging the current generation of user experience.
Data Sources
Card Apps
This also connects directly to Glimmer.

Cards need to be portable and fast everywhere.

Glimmer components are the perfect fit. They can be small fast web components when rendered as small cards, and expand into Ember apps when the user dives
into a complex dashboard or workflow.

Compilation is important not just for performance, but for the widest possible compatibility at the lowest cost. We can unlock Rust-epoch-like capabilities.
Data Sources
Card Apps
We also live in a time when multiple distributed technologies are mature or maturing.

Git is far a far more powerful distributed system than most people realize, and it not only good for source code.

Matrix is federated realtime messaging done well.

And the explosion of interest in blockchain-based distributed systems is creating new ways to coordinate people.
The Cloud
Fully decentralized
systems
One of Cardstack’s key bets is that — despite what many people think — Cloud services are not really the enemy of a decentralized internet.

You can build a system that takes advantage of the strengths of each.

The cloud isn’t bad when users have meaningful choices and control.
Keep building higher!
So that is the opportunity: we keep investing in the open web platform, controlled by no one, and unlock new ways for communities like ours to deliver the next
generation of software together.
edward@eaf4.com
ef4
eaf4
https://github.com/cardstack/cardstack
https://cardstack.com/

More Related Content

What's hot

Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...
Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...
Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...Dana Gardner
 
Cloudy with a chance of genealogy
Cloudy with a chance of genealogyCloudy with a chance of genealogy
Cloudy with a chance of genealogyDick Eastman
 
Text cloud computing
Text cloud computingText cloud computing
Text cloud computingJeroen
 
The Basics of Cloud Computing
The Basics of Cloud ComputingThe Basics of Cloud Computing
The Basics of Cloud ComputingNovinidea
 
Open Source Shareware Freeware
Open Source Shareware FreewareOpen Source Shareware Freeware
Open Source Shareware FreewareWilliam Stites
 
Mobile Agent - Taking Your Show On The Road
Mobile Agent - Taking Your Show On The RoadMobile Agent - Taking Your Show On The Road
Mobile Agent - Taking Your Show On The RoadDerec Shuler
 
Virtual & Remote Practice: Reach from the Beach & Manage from the Mountains
Virtual & Remote Practice: Reach from the Beach & Manage from the MountainsVirtual & Remote Practice: Reach from the Beach & Manage from the Mountains
Virtual & Remote Practice: Reach from the Beach & Manage from the MountainsGarrett P. Laborde
 
Rapidly Evolving IT Trends Make Open, Agile Integration More Important than Ever
Rapidly Evolving IT Trends Make Open, Agile Integration More Important than EverRapidly Evolving IT Trends Make Open, Agile Integration More Important than Ever
Rapidly Evolving IT Trends Make Open, Agile Integration More Important than EverDana Gardner
 
Interusability: designing a coherent system UX
Interusability: designing a coherent system UXInterusability: designing a coherent system UX
Interusability: designing a coherent system UXClaire Rowland
 
IBM Watson assistant
IBM Watson assistantIBM Watson assistant
IBM Watson assistantPrem Sanil
 
Itsme A New Workstation To Exploit The Potential Of The Cyberspace 02
Itsme  A New Workstation To Exploit The Potential Of The Cyberspace 02Itsme  A New Workstation To Exploit The Potential Of The Cyberspace 02
Itsme A New Workstation To Exploit The Potential Of The Cyberspace 02itsmesrl
 

What's hot (20)

Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...
Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...
Akamai Offers Situational Approach to Addressing Challenges Raised by Complex...
 
Micro services
Micro servicesMicro services
Micro services
 
Cloudy with a chance of genealogy
Cloudy with a chance of genealogyCloudy with a chance of genealogy
Cloudy with a chance of genealogy
 
Text cloud computing
Text cloud computingText cloud computing
Text cloud computing
 
The Basics of Cloud Computing
The Basics of Cloud ComputingThe Basics of Cloud Computing
The Basics of Cloud Computing
 
Cloud computing 101
Cloud computing 101Cloud computing 101
Cloud computing 101
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Cloud computinghuthcebula
Cloud computinghuthcebulaCloud computinghuthcebula
Cloud computinghuthcebula
 
Cloud
CloudCloud
Cloud
 
Open Source Shareware Freeware
Open Source Shareware FreewareOpen Source Shareware Freeware
Open Source Shareware Freeware
 
Opensourceshift
OpensourceshiftOpensourceshift
Opensourceshift
 
Youcast+ white paper
Youcast+ white paper Youcast+ white paper
Youcast+ white paper
 
Mobile Agent - Taking Your Show On The Road
Mobile Agent - Taking Your Show On The RoadMobile Agent - Taking Your Show On The Road
Mobile Agent - Taking Your Show On The Road
 
Cloud computing
Cloud computing Cloud computing
Cloud computing
 
Virtual & Remote Practice: Reach from the Beach & Manage from the Mountains
Virtual & Remote Practice: Reach from the Beach & Manage from the MountainsVirtual & Remote Practice: Reach from the Beach & Manage from the Mountains
Virtual & Remote Practice: Reach from the Beach & Manage from the Mountains
 
Rapidly Evolving IT Trends Make Open, Agile Integration More Important than Ever
Rapidly Evolving IT Trends Make Open, Agile Integration More Important than EverRapidly Evolving IT Trends Make Open, Agile Integration More Important than Ever
Rapidly Evolving IT Trends Make Open, Agile Integration More Important than Ever
 
Interusability: designing a coherent system UX
Interusability: designing a coherent system UXInterusability: designing a coherent system UX
Interusability: designing a coherent system UX
 
Team rocket
Team rocketTeam rocket
Team rocket
 
IBM Watson assistant
IBM Watson assistantIBM Watson assistant
IBM Watson assistant
 
Itsme A New Workstation To Exploit The Potential Of The Cyberspace 02
Itsme  A New Workstation To Exploit The Potential Of The Cyberspace 02Itsme  A New Workstation To Exploit The Potential Of The Cyberspace 02
Itsme A New Workstation To Exploit The Potential Of The Cyberspace 02
 

Similar to The Revolution Will Not Be Centralized

Discusion on Cloud Computing Services:A Selective Study
Discusion on Cloud Computing Services:A Selective StudyDiscusion on Cloud Computing Services:A Selective Study
Discusion on Cloud Computing Services:A Selective StudyPrasanna Kumar Valluri
 
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedis Labs
 
locotalk-whitepaper-2016
locotalk-whitepaper-2016locotalk-whitepaper-2016
locotalk-whitepaper-2016Anthony Wijnen
 
How Consistent Data Services Deliver Simplicity, Compatibility, And Lower Cost
How Consistent Data Services Deliver Simplicity, Compatibility, And Lower CostHow Consistent Data Services Deliver Simplicity, Compatibility, And Lower Cost
How Consistent Data Services Deliver Simplicity, Compatibility, And Lower CostDana Gardner
 
How Containers are Becoming The New Basic Currency For Pay as You Go Hybrid IT
How Containers are Becoming The New Basic Currency For Pay as You Go Hybrid ITHow Containers are Becoming The New Basic Currency For Pay as You Go Hybrid IT
How Containers are Becoming The New Basic Currency For Pay as You Go Hybrid ITDana Gardner
 
As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...
As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...
As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...Dana Gardner
 
Future platform for internet of things
Future platform for internet of thingsFuture platform for internet of things
Future platform for internet of thingsColdbeans Software
 
From a web application to a distributed system
From a web application to a distributed systemFrom a web application to a distributed system
From a web application to a distributed systemGianluca Padovani
 
Summarize the What Is Web 2.0
Summarize the What Is Web 2.0Summarize the What Is Web 2.0
Summarize the What Is Web 2.0wacerone
 
Web Application Vulnerabilities
Web Application VulnerabilitiesWeb Application Vulnerabilities
Web Application VulnerabilitiesPamela Wright
 
Decentralized application development company in usa blockchain developments
Decentralized application development company in usa   blockchain developmentsDecentralized application development company in usa   blockchain developments
Decentralized application development company in usa blockchain developmentsBlockchain Developments
 
How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...
How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...
How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...Dana Gardner
 
Moving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed TracesMoving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed TracesKP Kaiser
 
Operator-Less DataCenters A Near Future Reality
Operator-Less DataCenters A Near Future RealityOperator-Less DataCenters A Near Future Reality
Operator-Less DataCenters A Near Future RealityKishore Arya
 
Operator-less DataCenters -- A Reality
Operator-less DataCenters -- A RealityOperator-less DataCenters -- A Reality
Operator-less DataCenters -- A RealityKishore Arya
 
Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2VMware Tanzu
 
Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and consAndrew Siemer
 
Using Technology to Make People More Powerful
Using Technology to Make People More PowerfulUsing Technology to Make People More Powerful
Using Technology to Make People More PowerfulIan Heron
 
Capgemini Ron Tolido - the 3rd Platform and Insurance
Capgemini   Ron Tolido - the 3rd Platform and InsuranceCapgemini   Ron Tolido - the 3rd Platform and Insurance
Capgemini Ron Tolido - the 3rd Platform and InsuranceEDGEteam
 

Similar to The Revolution Will Not Be Centralized (20)

Discusion on Cloud Computing Services:A Selective Study
Discusion on Cloud Computing Services:A Selective StudyDiscusion on Cloud Computing Services:A Selective Study
Discusion on Cloud Computing Services:A Selective Study
 
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
 
locotalk-whitepaper-2016
locotalk-whitepaper-2016locotalk-whitepaper-2016
locotalk-whitepaper-2016
 
How Consistent Data Services Deliver Simplicity, Compatibility, And Lower Cost
How Consistent Data Services Deliver Simplicity, Compatibility, And Lower CostHow Consistent Data Services Deliver Simplicity, Compatibility, And Lower Cost
How Consistent Data Services Deliver Simplicity, Compatibility, And Lower Cost
 
How Containers are Becoming The New Basic Currency For Pay as You Go Hybrid IT
How Containers are Becoming The New Basic Currency For Pay as You Go Hybrid ITHow Containers are Becoming The New Basic Currency For Pay as You Go Hybrid IT
How Containers are Becoming The New Basic Currency For Pay as You Go Hybrid IT
 
As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...
As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...
As Cloud Trends Drive User Expectations Higher, Networks Must Now Deliver App...
 
Future platform for internet of things
Future platform for internet of thingsFuture platform for internet of things
Future platform for internet of things
 
From a web application to a distributed system
From a web application to a distributed systemFrom a web application to a distributed system
From a web application to a distributed system
 
Summarize the What Is Web 2.0
Summarize the What Is Web 2.0Summarize the What Is Web 2.0
Summarize the What Is Web 2.0
 
Concloud
ConcloudConcloud
Concloud
 
Web Application Vulnerabilities
Web Application VulnerabilitiesWeb Application Vulnerabilities
Web Application Vulnerabilities
 
Decentralized application development company in usa blockchain developments
Decentralized application development company in usa   blockchain developmentsDecentralized application development company in usa   blockchain developments
Decentralized application development company in usa blockchain developments
 
How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...
How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...
How Data-Driven Continuous Intelligence Benefits Aid the Development and Mana...
 
Moving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed TracesMoving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed Traces
 
Operator-Less DataCenters A Near Future Reality
Operator-Less DataCenters A Near Future RealityOperator-Less DataCenters A Near Future Reality
Operator-Less DataCenters A Near Future Reality
 
Operator-less DataCenters -- A Reality
Operator-less DataCenters -- A RealityOperator-less DataCenters -- A Reality
Operator-less DataCenters -- A Reality
 
Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2
 
Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and cons
 
Using Technology to Make People More Powerful
Using Technology to Make People More PowerfulUsing Technology to Make People More Powerful
Using Technology to Make People More Powerful
 
Capgemini Ron Tolido - the 3rd Platform and Insurance
Capgemini   Ron Tolido - the 3rd Platform and InsuranceCapgemini   Ron Tolido - the 3rd Platform and Insurance
Capgemini Ron Tolido - the 3rd Platform and Insurance
 

Recently uploaded

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Recently uploaded (20)

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 

The Revolution Will Not Be Centralized

  • 1. The Revolution Will Not Be Centralized edward@eaf4.com ef4 eaf4 Edward Faulkner This is a talk about re-decentralizing the web. But I am going to take a roundabout path to getting there that starts much closer to what this community is already doing.
  • 2. A framework for creating ambitious web applications What is the Ember community’s favorite adjective?
  • 3. ambitious What is ambitious depends on your context.
  • 4. When you are only one year old, climbing the playground is ambitious!
  • 5. When you are six years old, hiking up mountains is ambitious.
  • 6. http://bit.ly/2yklMHdDecember 14, 2011 When Ember was born, just the idea of creating desktop-class applications in the browser was ambitious. We are extremely successful in that space: Apps with big responsibilities and complicated requirements.
  • 7. We have not stopped being ambitious. Yesterday we heard a lot of details about ongoing Ember work that I will not repeat in detail. But let’s take a quick glance at the high level amount of activity.
  • 8.
  • 9.
  • 10.
  • 11. Two interesting things here: The first is how far back glimmer-vm goes! It has undergone continuous evolution from the point when it was called htmlbars. The second is that recent velocity is very high.
  • 12. Lest anybody worry that glimmer.js is consuming all of our dev resources, this makes it clear that it is not. But it is definitely a high-value increment on top of everything else.
  • 13. And we see that our latest month is among the handful of most ambitious in the project’s history. Things are really moving! On a codebase that is not young. That’s a robust sign of health!
  • 15. ambitious along which dimensions? •Easier development •Easier learning •Faster code in more environments
  • 16. Easier development ? The Werewolf of Eschenbach, Germany: line engraving, 1685 This illustration accompanies the classic essay “No Silver Bullet” by Fred Brooks written in 1986. Essential vs accidental complexity. Limits to how much we can reduce essential complexity.
  • 17. • Only so much complexity can fit per brain • Communication cost goes up as N^2 when you add more brains. How do make software development easier? The first answer is, you don’t. Fundamental limits.
  • 18. Only Known Workaround: Higher-Level Abstractions return solveMyProblem(); fetch('https://emberfest.eu/') No such thing as too much magic. Only good and bad abstractions. Which is part of the vital role of frameworks — to be really abstract, you need to solve many people’s problem. You need a community.
  • 19. The ember add-on ecosystem is the where we can build abstractions higher than Ember itself. In a sense, Ember exists to allow the add-on ecosystem to flourish, just as a kernel exists to allow an application ecosystem to flourish and cooperate. My topic today is how to let add-ons grow into something more powerful.
  • 20. Storage Server App Client App PostgreSQL, MySQL, Redis, Elasticsearch, s3, etc Rails, Django, Struts, Express, etc Your code Your code Glimmer, Ember, etc Addons We already get a large amount of reuse. It’s why we can build what we do today already. Notice that the horizontal boundaries are natural places where both open source projects and commodity services tend to thrive. People are used to integrating across them. Vertical boundaries are harder. A lot of the custom code we write today is trying to integrate things across vertical boundaries.
  • 21. Server App Client App Your code Glimmer, Ember, etc Addons Storage @cardstack/hub (Legacy) This is the Cardstack architecture. You may have seen my Emberconf talk, where I focused mostly on what Cardstack can add inside an Ember app. Here I will focus more on the broader architecture. Cardstack Hub is a node-based server. It gets compiled from the set of Cardstack plugins in your package.json. It sits in front of your data sources, which can include your existing application servers.
  • 22. Server AppStorage @cardstack/hub (Legacy) Client App Your code Addons Glimmer, Ember, etc Addon A single npm package can be an ember add-on and a cardstack plugin simultaneously. It can provide ember components, etc. It can also provide Features to Cardstack hub. This is a step toward making add-ons that can behave more like mini applications. For example, instead of just a calendar UI, why not install a whole calendar system, including storage and search? An invoice builder? A CRM?
  • 23. Data Source Plugins Middleware Plugins Dockerized Services The Hub doesn’t want to own your data. It serves as a command and query tier (Command Query Responsibility Segregation) in front of your existing data sources. Data source plugins can index, write, and search data sources. Middleware plugins expose data out to client apps. JSON:API is the most relevant example for us. Cardstack plugins that need more than just pure Javascript within the node-based Hub can declare that they depend on arbitrary Docker images, which will be spun up automatically. Here I’m showing Elasticsearch: add a single package, gain a full search engine. Data source plugins are not unlike ember-data adapters, moved to the server. But on the server they are more powerful. And we can hide their complexity from the client app.
  • 24. •authenticator •code-generator •constraint-type •field-type Hub plugins are well-typed •indexer •messenger •middleware •searcher •writer Some plugin systems encourage you to inject arbitrary code into arbitrary places. That hits composition limits, and it makes it much harder to write plugins. The hub’s plugins are well-typed, meaning they expose specific types of Features that each do one specific thing. Which makes them easier to write and keeps the whole system more compose-able.
  • 25. So what does all this have to do with cards? Everything.
  • 26. As a visual design language, Card UI is already ubiquitous. The newly-redesigned iOS app store demonstrates card motion and affordances perfectly. But card-based design is capable of more. It’s a design system that fits naturally with component composition. Users can move in and out of rich experiences that each have totally different internal implementations, but follow enough design conventions around their edges so that they come together as a coherent experience. And when you can pass interactive cards from person to person, you can support organically growing workflows.
  • 27. Custom code Shared code Card UI lets us attack one of the critical problems on the web today. Centralization. Walled gardens. Too hard to integrate into coherent experiences. Stifled innovation. Every app has a wide, custom layer in between the user and their data. This gives it total control, but it is also a huge burden. You can’t focus on just the value- added parts that are special. You write yet another login screen, menu system, content management feature, media manager, authorization system, scheduling system, etc.
  • 28. When everyone does this, users get disjointed experiences. Too many logins. Forced to choose between staying in one walled garden where at least everything works together vs the freedom and innovation of a more open web. Developers can’t safely invest in a platform that’s wholly owned by someone else. Businesses feel this acutely. They frequently face build-vs-buy dilemmas. They can’t buy features a la carte, and they can’t easily recover from the wrong choice because their data gets locked in. Every app locks your data in. Which is clearly bad for users. But isn’t it good for us, who make and sell software? No, only for the biggest, established, billion dollar vendors. Lock-in makes small, innovative teams too risky to trust with Important Software.
  • 29. When data and hosting are all controlled by one company, it’s a high risk situation. So only very big, established vendors can sell Important Software. And important software is where most of the money is.
  • 30. Data Sources Card Apps So how do we grow an open ecosystem with lower risk and less lock-in? It’s deliberate that the Hub exists so that Cards can be portable across data sources. It enables a much more distributed way of writing apps. And the massive open source investment in making software easier and easier to deploy to commodity hosting means we can make it practical for a wider audience of organizations to control their own hosting. You can still write a normal, self-contained app if you want to. But you can go faster and attack bigger Important Software markets if you don’t go alone. This isn’t about trying to convince people to decentralize out of idealism. This is about leapfrogging the current generation of user experience.
  • 31. Data Sources Card Apps This also connects directly to Glimmer. Cards need to be portable and fast everywhere. Glimmer components are the perfect fit. They can be small fast web components when rendered as small cards, and expand into Ember apps when the user dives into a complex dashboard or workflow. Compilation is important not just for performance, but for the widest possible compatibility at the lowest cost. We can unlock Rust-epoch-like capabilities.
  • 32. Data Sources Card Apps We also live in a time when multiple distributed technologies are mature or maturing. Git is far a far more powerful distributed system than most people realize, and it not only good for source code. Matrix is federated realtime messaging done well. And the explosion of interest in blockchain-based distributed systems is creating new ways to coordinate people.
  • 33. The Cloud Fully decentralized systems One of Cardstack’s key bets is that — despite what many people think — Cloud services are not really the enemy of a decentralized internet. You can build a system that takes advantage of the strengths of each. The cloud isn’t bad when users have meaningful choices and control.
  • 34. Keep building higher! So that is the opportunity: we keep investing in the open web platform, controlled by no one, and unlock new ways for communities like ours to deliver the next generation of software together.