13. High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
14. High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
15. Chapter I: Iceberg
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Layers separate
levels of
abstraction
16. High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Chapter I: Iceberg
17. Chapter I: Iceberg
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
18. Chapter I: Iceberg
High level: user Low level: backend
IceWorkingCopy
IceCommit
IceBranch
LGitCommit
MCVersion
Isolate
message-crossing
points
33. Three lessons of
Architecture crafting
separate by levels of abstraction
isolate points of failure
separate stateful from stateless
be explicit, as less magic as possible
Guille Polito
@guillep
CNRS - UMR9189
CRIStAL