Software Architecture Toolkit
This post contains the curated list of tools, patterns and processes useful in any software architecture practice.
The audience for the below software architecture tools set is wide, ranging from software engineers, tech leads to software and enterprise architects.
Software Architecture diagrams are the key resources for all system architects. Below is a list of commonly used frameworks for software architecture diagraming.
PlantUML. Software tool which allows to generate various diagram types from specific text based definitions. Widely supported in industry with multiple plugins. Based on the Java programming language. Open source project.
Architecture Decision Records
Why is usually more important than how.
An Architecture Decision Records or short ADRs is a technique of maintaining simple and concise documents that explain why technical decisions are going to be made this way.
Below are related articles explaining ARD concepts:
When Should I Write an Architecture Decision Record. How do you explain a significant decision that impacts how engineers write software within your organization? Time to start using ADRs.
A practical overview on Architecture Decision Records. This article lists practical examples and considerations while adopting ADRs within technology organization.
The Psychology of Architecture Decision Records This post describes the positive team cultural impact ADRs have. They help software engineers to evolve into architectural thinkers.
Well-Architected has become the universal framework for building reliable, secure and performant cloud applications.
- Understanding the Six AWS Well-Architected Pillars of Successful Architectures.
- Well-architected tool for Architecture Reviews.
- Cloud adoption checklist. From strategy to operation.
Domain Driven Design
Its a collection of principles to design elegant technical systems.
Based on the business domain models it reduces the gap between functional purpose technical system has to serve and its code implementation.
- Designing systems with event storming (practical approach).