git-annex's high-level design is mostly inherent in the data that it stores in git, and alongside git. See [[internals]] for details. See [[encryption]] for design of encryption elements.