~/talk

Data Diffing Based Software Architecture Patterns

slides:none on file

Covers a production Clojure/ClojureScript diff/patch library EditScript and two algorithms (quick and A algorithms) that run in production for years; claims diffs are smaller than full state, patch is fast, and using diffs cuts a GraphQL schema from thousands of lines to a few endpoints so a complete SPA UI rewrite ships in months. Shows externalizing per-chat agent state via Kafka diff logs to recover sessions and using differential synchronization (Google Docs style). Recommends avoid vectors* for diff-heavy models.

AI-written summary · about

  1. 0:00Intro
  2. 0:22What is diffing?
  3. 2:13Evolution of diffing (2)
  4. 5:15Diffing enables decoupling
  5. 7:18Diffing encourages data model reuse
  6. 8:02Diffing tracks changes
  7. 8:43Editscript: a Clojure data diffing library
  8. 10:04Case study: Juji Studio UI Re-design
  9. 11:24UI Data model: config doc
  10. 12:12Traditional GraphQL API
  11. 13:18Diffing based GraphQL API
  12. 15:08Case study: externalize application states
  13. 17:03Case study: reduce component dependency • Stateful components depend on one another • Introducing user inable system functions.
  14. 20:39Case study: synchronize collaborative editing
  15. 22:29Differential Synchronization
  16. 26:35Data modeling guideline: Don't use vector
  17. 28:16Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.