Please log in to watch this conference skillscast.
Time has a profound impact on the complexity of the systems we build.
A significant amount of this software complexity comes from either an
inability to recall previous states or the inability to understand
how a state was arrived at.
From the foundations of AI, LISP and functional programming [1], to
causality in distributed systems [2], to the more grungy practices of
immutable infrastructure, or the unreasonable effectiveness of
fact-based approaches to large scale data systems; the ability to
adequately cope with time, and the change and conflict it inevitable
creates, is a common thread to being able to build and reason about
these systems.
This talk looks at the impact of time on system design. We will walk
through examples of large-scale systems and their battles with
complexity. At the end of the talk, the audience should start to see
the common spectre of time and have an appreciation of how
understanding time is fundamental to maintaining clarity, correctness
and reliability in systems.
[1] Situations, Actions, and Causal Laws
John McCarthy
http://www.dtic.mil/dtic/tr/fulltext/u2/785031.pdf
[2] Times, Clocks and the Ordering of Events in a Distributed System
Leslie Lamport
https://amturing.acm.org/p558-lamport.pdf
YOU MAY ALSO LIKE:
- Systems That Don't Forget (SkillsCast recorded in July 2020)
- Domain-Driven Design in Practice with Michael Plöd (Online Workshop on 20th - 22nd September 2022)
- Product Elevation Conference 2022: Online (Online Conference on 9th - 10th November 2022)
- Product Elevation Conference 2022: In-Person (in Dublin on 9th - 10th November 2022)
- Product Management Helps Us Build the RIGHT Things; Agile Helps Us To Build Things RIGHT (SkillsCast recorded in September 2021)
- Storystorming (SkillsCast recorded in October 2019)
Hanging on in Quiet Desperation: Time & Programming
Mark Hibberd
CTOKinesis