Software architecture
aims to describe the high level structures of software as well as the discipline of creating them. As this topic is pretty broad, it might contain some resources that are also present in more niche lists.
A curated list of resources on software architecture
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
aims to describe the high level structures of software as well as the discipline of creating them. As this topic is pretty broad, it might contain some resources that are also present in more niche lists.
Able to adapt to changes in both environment and usability requirements without encompassing structural changes.
Lend to developing software with considerations for maintaining and extending as the project grows
Decouple the application core logic from the services it uses.
One-to-many state change notification.
The one that started it all :orange_book:.
Introduction to common software design patterns.
Segregate operations that read data from operations that update data by using separate interfaces.
Instead of storing just the current state of the data in a domain, use an append-only store to record the full series of actions taken on that data.
Feature Toggles (often also refered to as Feature Flags) are a powerful technique, allowing teams to modify system behavior without changing code.
BDD uses human-readable descriptions of software user requirements as the basis for software tests.
Layers are a way to separate responsibilities and manage dependencies.
Protecting failing resources to prevent cascading failures.
Partition resources to isolate failures.
Coordinate distributed workloads by electing a leader.
Making a case for growing software in small increments :orange_book:.
Key principles and concepts for building sustainable and maintainable software :orange_book:.
Cost and impact of accumulating technical debt.
Minimalistic ideals as a practical and pragmatic approach to software testing 🎥.
Suggestion on TDD practices and boundaries to reduce coupling 🎥.
Template for documentation and communication of software and system architectures.
Version and document architectural decisions the same way you do with code.
Pragmatic tips on how to effectively document software architecture.
Format for exploring domain driven-design.
Fast and dead-simple way of prioritizing requirements.
Visualize your requirements by creating story maps.
A strategic planning technique used for building products and delivering projects.
Business plans made simple and visual.
Easily visualize your value proposition, costs and revenue streams :orange_book:.
Describe software using Context, Containers, Components and Code.
Great, short, introduction to data modeling.
Object-oriented modelling suite. Only available natively for Windows.
Similar to Enterprise Architect. Available for multiple platforms.
Paid cloud-based diagram editor. Available on all common platforms.
Free and simple diagram editor. Comparable to Visio and its likes. Available on all common platforms.
Modelling tool based on the C4 Model (see above).
Like markdown for diagrams, PlantUML renders an english-like grammer into diagrams.
Adds support for PlantUML-based diagrams in the atlassian suite.
Collaborative sketchboarding.
Free cloud based entity relationship diagram (ERD) tool made for developers.
Real-time collaborative text-to-diagram editor for PlantUML, Mermaid, and Structurizr (C4), with browser-based PNG/SVG export.
Framework for developing and maintaining complex products.
Scalable agile framework.
Scalable Scrum according to Ken Schwaber, co-creator of Scrum.
How "Agile" has moved away from the basic principles of agility, and what we need to do to fix things 🎥.
How do we work with architecture in a agile world 🎥.
How do we work with architecture in a agile world 🎥.
Translation of lean manufacturing for the software development domain.
Business novel about agile and lean software development :orange_book:.
Business novel about contiuous improvements in a manufacturing setting. Easily adaptable to software development as well :orange_book:.
The most specific of the popular agile processes, focusing on engineering and development practices.
Combining software development and operations practices to shorten time to market while maintaining high quality.
IT, Devops and helping your Business win :orange_book:.
Developers, Digital Disruption and Thriving in the Age of Data :orange_book:.
How BPDTS use the CALMS model as a reference for their devops adaptations.
Chaos Engineering is a new discipline within Software Engineering, building confidence in the behavior of distributed systems at scale 🎥.
Based in the C.A.L.M.S. definition of DevOps, the framework defines a set of capabilities and guidelines that when adopted, increases efficiency, effectiveness and happiness of the team.
Additional things helpful to learn to get a firm understanding of software architecture.
A complete and structured guide to become a Software Architect.
VoltAgent/awesome-openclaw-skills
The awesome collection of OpenClaw skills. 5,400+ skills filtered and categorized from the official OpenClaw Skills Registry.🦞
awesome-dsh-plugin/awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
Kristories/awesome-guidelines
Programming style, best practices, and coding conventions.
sindresorhus/awesome
😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]
ai-boost/awesome-prompts
Curated list of chatgpt prompts from the top-rated GPTs in the GPTs Store. Prompt Engineering, prompt attack & prompt protect. Advanced Prompt Engineering papers.
matiassingers/awesome-readme
A curated list of awesome READMEs