Although (or because) blockchain is a hype topic, careful analysis is necessary to check whether blockchain is an adequate solution for an envisioned application. Designing the architecture of blockchain-based applications is challenging and requires an significant amount of aligned architecture decisions. We support architects with guidance for the decision whether blockchain could be an adequate solution and guide decision making for blockchain-based applications by outlining the architecture design space with numerous relevant questions.
Blockchain is a heavily overloaded term, both in discussions of practitioners and in literature. This ambiguity is dangerous as it leads to a lot of misunderstandings and can compromise the quality of blockchain-based applications being developed. Thus, we delineate in this article key terms of blockchain. To make understanding as simple as possible, we use Ethereum as an example.
Blockchain is a hype topic that already led to some disillusionment. The development of blockchain-based applications is often technology-driven and with a trial-and-error approach. We provide guidance for architecting blockchain-based applications. We put structure on foundations and terms around blockchain, we outline architecture drivers that benefit from using blockchain technology, and we guide architects with numerous questions through the design space of blockchain-based applications.