Skip to content

Electric Clojure: Differential Dataflow for UI

Photo of Tiago Luchini
Hosted By
Tiago L.
Electric Clojure: Differential Dataflow for UI

Details

Welcome back to Clojure/nyc and a new year of events. We'll open the year with a talk by Dustin Getz on Electric Clojure and its evolution: Differential Electric. Here's the abstract:

---

One year ago we publicly launched Electric Clojure, a "network transparent" Clojure DSL that represents interactive client/server web apps as a single unified reactivity graph spanning both frontend and backend, and then feeds that DAG into a compiler macro to automatically coordinate network state distribution across the frontend/backend boundary.

This talk is about solutions to the problems encountered in the first year of production usage. Electric's network performance has overall been excellent in practice, dramatically out-performing other sync approaches like dataloaders and client databases. Deep tree hierarchy (such as in a complex datagrid) is one area where Electric v2's algorithm, while still outperforming alternatives in both simple and complex apps, had room for improvement.

Differential Electric improves upon Electric Clojure by propagating incremental state changes through the DAG in the form of diffs. In this new "differential" strategy, what propagates over the wire is precise and fine-grained client/server state differences, resulting in a correct and consistent glitch-free view out of the box, with zero collection reloads, overfetching, underfetching or other data sync waste.

This is an example-driven talk. We'll start with the Electric hello world, to understand the basic premise of compiler managed network, and then progress through a series of interesting real-world scenarios, demonstrating by example how algorithmically optimal network management falls out of differential dataflow basically for free.

Dustin Getz is a UI development consultant specializing in ultra-rich user interfaces such as IDEs, productivity tools, streaming datagrids, and complex business applications.

COVID-19 safety measures

Event will be indoors
The event host is instituting the above safety measures for this event. Meetup is not responsible for ensuring, and will not independently verify, that these precautions are followed.
Photo of Clojure/nyc group
Clojure/nyc
See more events