Overview
Syllabus
Kevlin Henney Thinking Outside the Synchronisation Quadrant
that shape a system, where significant is measured by cost of change.
Concurrency
Architecture is the art of how to waste space.
Systems have properties
and the execution confined; that the desire is boundless, and the act a slave to limit.
template void map reduce TaskIterator begin, TaskIterator end
A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in.
Prevention - change the rules.
sequential
Immediately return a 'virtual' data object- called a future—to the client when it invokes a service. This future /... only provides a value to clients when the computation is complete.
Lambda-calculus was the first
To keep our C++ API boundary simple, we [...] adopted one-way data flow. The API consists of methods to perform fire-and-forget mutations and methods to compute view models required by specific views
To keep the code understandable, we write functional style code converting raw data objects into immutable View models by default. As we identified performance bottlenecks through profiling, we added caches to avoid recomputing unchanged intermediate results.
Taught by
code::dive conference