# Towards a Catalogue of Self-Sovereign Identity Design Patterns
## 5 Conclusions  
There are many benefits of design patterns, as they present a means for solving common design problems. They provide tested and proven paradigms, and can be reused in new implementations as the best possible solution for specific problems. They capture good practices and lessons learned, and can speed up the development process drastically.  
Figure 6: Interconnection of SSI design patterns from different categories.  
Figure 7: Highlighting relationships between VCs and other patterns.  
They can increase the quality, readability, and system documentation while helping to understand the software and the rationale behind solutions.  
With the evolvement of the SSI field, patterns can be recognised from proof-of-concept, implemented solutions, and technical documentation. Thus, identifying and gathering the patterns can be beneficial for guiding engineers in designing and developing SSI solutions. Therefore, this study investigated the literature and technical documentation of existing implementations, with the aim to provide a classified catalogue of self-sovereign identity design patterns that can serve as a starting point for architects and engineers responsible for designing robust and well-designed SSI systems and applications.  
Building on existing knowledge and based on studying the EBSI ESSIF, Veramo, and Sovrin documentation, we collected 35 design patterns, whereby we defined twenty-three of them based on the [PERSON] template, while the remaining twelve were already defined by [PERSON] et al. Patterns are summarised throughout this paper (Section 2.2), and are classified into representative categories.  
The survey could be improved by: (i) Analysis of additional technical documentation to complement/extend the known use cases. This would allow us potentially to identify additional patterns (which were overlooked in this iteration). (ii) Connecting patterns and validated SSI properties or identifying patterns that enable the SSI properties to be met. SSI properties can be used to validate and determine whether implemented solutions are truly SSI, or merely decentralised identities. (iii) Validation of newly defined design patterns by experts (researchers and developers of SSI solutions). To improve the quality of patterns we could imply, i.e., a shepherding method, which was introduced by [PERSON] [17]. The method is used in the pattern community to improve pattern quality by having an experienced pattern writer review the patterns. (iv) It would also be useful to implement a tool to provide decision support and the selection of appropriate patterns to address specific problems in the design and development of SSI solutions.  
Conceptualisation, S.C. and M.T.; data curation, S.C.; formal analysis, S.C.; investigation, S.C. and V.K.; methodology, S.C. and M.T.; project administration, M.T.; supervision, M.T.; validation, S.C., V.K. and M.T.; visualisation, S.C.; writing--original draft, S.C. and M.T.; writing--review and editing, S.C., V.K. and M.T. All authors have read and agreed to the published version of the manuscript.  
This work was supported by the Slovenian Research Agency (Research Core Funding) under Grant P2-00577, and by the European Union's Horizon 2020 Research and Innovation Program under Grant Agreement No. 870635 (Digital Europe for All--DE4A).  
Not applicable.  
Pattern definitions and connection visualisations are available at [30].  
The authors declare no conflict of interest.  
The following abbreviations are used in this manuscript:  
DID \[\text{Decentralised Identifier}\] DIF \[\text{Decentralised Identity Foundation}\] DLT \[\text{Distributed Ledger Technology}\] DPKI \[\text{Decentralised Public-Key Infrastructure}\] EBSI \[\text{European Blockchain Services Infrastructure}\] ESSIF \[\text{European Self Sovereign Identity Framework}\] HE \[\text{Higher Education}\] IdP \[\text{Identity Provider}\] IoT \[\text{Internet of Things}\]