~/talk

Logux, a new approach to client-server communication

Talkat React London 2017 Β· on Tuesday, 2017-03-28Β· [react, web-platform]

Logux claims to replace AJAX with a synchronized action log combining Redux and CRDT ideas, delivering real-time updates and offline editing by syncing client and server action logs over WebSocket and storing events in IndexedDB. The demo shows a small ~20KB Redux-compatible library, a companion server, optimistic UI behavior with undo from server, and a leader tab election to keep one socket per browser. Implementation is young but deployed internally and handles time skew, pings, and restore of unsent actions.

AI-written summary Β· about

  1. 0:00Intro
  2. 0:39Evil Martians front-end open source
  3. 1:18Revenge from Autoprefixer
  4. 1:47Rework is dead
  5. 2:05Open source advice
  6. 2:54Front-end architecture ...
  7. 3:23AJAX Requests
  8. 4:18Server synchronization code
  9. 5:09Local connection in development
  10. 7:57CRDT, 2009
  11. 8:51Log must be a first-class citizen
  12. 9:15Actions log on client
  13. 9:28Actions log on server
  14. 10:21Problems and Solutions
  15. 10:39order of actions
  16. 10:49Sort by time?
  17. 11:30Questions about time: 2
  18. 11:54CloudFlare leap second problem
  19. 12:13Questions about time: 3
  20. 12:31Wrong time zone
  21. 13:00action ID
  22. 13:11Sequence number
  23. 13:22Server sends current time
  24. 13:33Client calculates time difference
  25. 13:43Client applies time difference
  26. 13:53Chinese Internet
  27. 14:18disconnect detection
  28. 14:43ping command
  29. 14:53Live connection status
  30. 15:23tabs conflict
  31. 15:40only the leader tab keeps WS
  32. 16:08Synchronized state between tabs
  33. 16:27Modern front-end
  34. 16:48Other problems of distributed systems
  35. 17:21Client: Redux compatible API
  36. 18:03Client: cross-tab actions
  37. 18:17Client: server actions
  38. 19:11Client: server could undo action on error
  39. 20:02Client: action storage
  40. 20:24Client: ask server for changes
  41. 20:35Client: wait for server answer
  42. 20:49Server: Node.js framework
  43. 21:03Server: actions handling
  44. 21:32Server: send actions to client at any time
  45. 22:14Wrap legacy back-end (PHP, Ruby)
  46. 23:13Trade-offs
  47. 23:25Problem 1: Complexity
  48. 24:02Problem 2: under construction
  49. 24:2530 contributors
  50. 25:28Questions?
~/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.