In the early days of blockchain, most protocols aimed to solve everything in one blockchain protocol. By now, there is industry-wide agreement to have a rather modular blockchain architecture. A core blockchain must be secure, reasonably decentralized, and achieve good throughput. It should enable more functionality and throughput through second-layer protocols, side chains and other modules. Maintainability and upgradeability of single components should be possible without any network downtime. Private blockchains can be tailored much more to specific needs through advanced composability. Various tooling can help to improve the blockchain usability.