The impact of decentralization
on APIs and clients

Ruben Verborgh, Inrupt / Ghent Universityimec

API days Paris, 12 December 2018

The impact of decentralization
on APIs and clients

Ruben Verborgh

Inrupt / Ghent University – imec

Web

30

Innovation on the Web
is under threat from
business models that
focus on data harvesting.

The Solid ecosystem
brings back competition
by decoupling data and apps.

This style of Web development
will have a profound impact
on how we build APIs and clients.

The impact of decentralization
on APIs and clients

The impact of decentralization
on APIs and clients

Before the Web,
the world was highly heterogeneous.

The Web strives to be universal, and
thereby enables permissionless innovation.

Permissionless innovation has brought
unprecedented creativity to the world.

Universality has been under threat
multiple times in the past 30 years.

The current massive centralization
hurts diversity, innovation, and choice.

The impact of decentralization
on APIs and clients

The Solid ecosystem enables people to use the apps they need, while
storing their data wherever they want.

People own their data, and share it
with the apps and people they choose.

People choose where they store
every single piece of data they produce.

They can grant apps and people access
to very specific parts of their data.

Separating app and storage competition
drives permissionless innovation.

Solid is an ecosystem of data and apps
that work seamlessly together.

The crucial challenges in Solid
are solved by hypermedia.

With JSON-LD, every piece of data
can link to any other piece of data.

{
  "@context":  "https://www.w3.org/ns/activitystreams",
  "id":        "#ruben-likes-apidays2018",
  "type":      "Like",
  "actor":     "https://ruben.verborgh.org/profile/#me",
  "object":    "https://www.apidays.co/paris#this",
  "published": "2018-12-12T10:00:00Z"
}

Data shapes and their semantics
enable layered compatibility.

{
  "@context":  "https://www.w3.org/ns/activitystreams",
  "id":        "#ruben-likes-apidays2018",
  "type":      "Like",
  "actor":     "https://ruben.verborgh.org/profile/#me",
  "object":    "https://www.apidays.co/paris#this",
  "published": "2018-12-12T10:00:00Z"
}

Different source data
can be concatenated.

{
  "@context":  "https://www.w3.org/ns/activitystreams",
  "@graph": [{
    "type":      "Like",
    "actor":     "https://ruben.verborgh.org/profile/#me",
    "object":    "https://www.apidays.co/paris#this",
    "published": "2018-12-12T10:00:00Z"
  },{
    "type":      "Like",
    "actor":     "https://example.org/people/mehdi#me",
    "object":    "https://www.apidays.co/paris#this",
    "published": "2018-12-12T10:05:00Z"
  }]
}

The impact of decentralization
on APIs and clients

The current approach to building APIs
does not play well with decentralization.

Most Web APIs are monoliths,
constructed from the top down.

An API exposes functionality, implemented as a single custom interface.

By building Web APIs from the bottom up,
clients can pick granular compatibility.

Modular interface features provide functionalities that define the API.

A Web API ecosystem through feature-based reuse IEEE Internet Computing

When clients do not bind to HTTP requests,
APIs can evolve independently of app logic.

Queries are the key to making
decentralized apps sustainable.

An app’s queries can be run anywhere:
client, server, intermediaries—or all three.

The impact of decentralization
on APIs and clients

Data ownership by end users
unlocks permissionless innovation.

In absence of centralized parties,
we need standardized API features.

Queries make apps independent
of concrete API requests.

The impact of decentralization
on APIs and clients

@RubenVerborgh

solid.inrupt.com