2nd Solid Symposium
2-3 May 2024, Leuven

Real Time Solid

Welcome

The Real Time Solid session will provide an introduction to notification standards and their current implementations, as well as discuss future directions for real-time capabilities in Solid.


Date: May 3, 2024

Time: 11:00 - 12:30 and 13:30 - 15:00

Venue: Faculty Club, Groot Begijnhof, Leuven, Belgium

Organizers

Rahul Gupta

Contact
Email

elf Pavlik

Abstract

HTTP was originally designed to transfer a static documents within a single request and response. But web-applications today are dynamic, providing (near-)instantaneous updates across multiple clients. The notification protocols in Solid cater to the needs of Solid developers to provide their users with a real-time experience.

The Real-Time Solid session at the Solid Symposium 2024 will provide an introduction to notification standards within Solid as well as existing implementations within the Solid server and client library ecosystem. The introduction aims to pave the way for a discussion with the broader community of the Solid developers of the ways in which we can add to the real-time capabilities in Solid and the developer experience around it.

Call for Contributions

Thank you for yor submissions for this session. This call is now closed

Submission Format

Submissions for this sessions can be made in any of the following formats:

All submissions must be in PDF file format and can be submitted via E-mail to the organizers.

Dates

If an early decision is required for a submission, such as for visa and travel booking, please contact the organisor directly before the deadlines above.

Programme

The session is divided into two themes:

Theme 1: Notifications

This theme will focus on the existing standards for implementing notifications in Solid.

Solid Notifications Protocol

Speaker: elf Pavlik (remote)

The Solid Notifications Protocol is the official specifications of receiving notifications from the Solid resources. It provides a mechanism for discovery of notification capabilities on resources, customisation of notification channels through subscriptions, capabilities of notification channels, and methods for establishing a connection to a notification channel.

In this presentation, we shall discuss the current state of the specification, differences between existing channel types, various implementations and future directions for the Solid Notifications Protocol.

Specifications
Solid Notifications EventSourceChannel2023 LDNChannel2023 StreamingHTTPChannel2023 WebhookChannel2023 WebSocketChannel2023 WebPushSubscription2022
Implementations
Solid Notification Client Community Solid Server - Notifications

Per Resource Events

Speaker: Rahul Gupta

Per Resource Events is a minimal protocol built on top of HTTP that allows clients to receive notifications directly from any resource of interest. The Per Resource Events Protocol (PREP) is predicated on the idea that the most intuitive source for notifications about changes made to a resource is the resource itself. The companion Solid-PREP specification defines representation and semantics for notifications sent from LDP Resources hosted on Solid PODS using the Per Resource Events Protocol.

Specifications
Per Resource Events Solid-PREP

Real-Time Emissions Calculation using Solid Notifications Protocol

Speaker: Luka Bekavac, Lukas Volk, Jan Grau

The evolution of Life Cycle Assessment (LCA) is propelled by technological advancements and new regulations that demand the monitoring of greenhouse gas (GHG) emissions. Traditional LCA methodologies, though robust, often capture only a moment in time, specific to a particular product composition. The introduction of Solid Pods into LCA processes enables real-time recalculation of emissions. Utilizing Solid Notification Protocol with a Webhooks Channel allows stakeholders to receive instant updates whenever any LCA-related data changes, facilitating automated emission recalculations. This innovation ensures real-time alerts to changes, maintains privacy, and permits immediate responses or analyses, enhancing the overall efficiency and accuracy of environmental impact assessments.

Links
Towards an integrated semantic approach to GHG Accounting WISER Consortium

Theme 2: Synchronization

This theme will introduce various synchronization technologies using CRDT/OTs for Solid.

CRDTs and Solid in practice

Speaker: Noel De Martin

A while ago, I set out to make an offline-first Solid Application. I didn't know where to start, but that's when I stumbled upon CRDTs. The idea was enticing, but there weren't any examples of using this approach in a Solid application. How hard could that be?

In this presentation I shall discuss what I found along the way, and how I used the best of both worlds with a simple, yet effective approach.

Website
Umai

Live Local-First RDF Graph Sharing

Speaker: George Svarovsky

End-users now expect apps to offer live collaboration on content, where appropriate. Most apps still build this capability with hard-coded ad-hoc solutions using, for example, WebSockets and fine-grained locks. This practice is tricky, and hence, brittle. When using Solid, it also harms the principle of application independence, because the app's concurrency model is opaque. We have developed a software component for "local-first" RDF graph sharing, in which the concurrency model is declarative, allowing heterogeneous apps to dynamically adapt, so users can collaborate live. This talk will introduce the problem, demonstrate our solution, and look to the future.

Website
m-ld
Specifications
Shared-Graph Model Pattern m-ld Specification
Repository
m-ld.js

Braid

Speaker: Michael Toomim

Solid has a simple pub/sub protocol to notify clients of real-time events. However, it would be much better if HTTP itself knew about the change, and automatically synchronized multiple clients, servers, and peers without programmer intervention.

I will present Braid-HTTP, a set of extensions to HTTP that guarantee synchronization for the state of any HTTP resource, under arbitrary edits, by multiple writers, over arbitrary content-types, under arbitrary network conditions. I will demonstrate how Braid can synchronize real-time changes to RDF data in a Solid application.

Website
Braid
Specifications
Braid HTTP Range Patch Merge Types Linked JSON
Repository
Braid Monorepo