software architecture

noun

Software architecture is the main structure of a software system: its components, their relationships and the principles guiding technical choices and changes.

When expanding the platform, we chose a software architecture that allows the payment module to change independently.

Software architecture describes the overall structure of a software system. It identifies its parts, their responsibilities and how they exchange data or instructions. It also records principles for the system's further development.

Which decisions belong to software architecture?

Architecture decisions include the boundaries between Glossary · In briefcomponentA component is a distinct part of software with its own task and a clear way of interacting with other parts.Read more, data storage and communication through an Glossary · In briefAPIAn API is a defined way for software to exchange data or call functions in other software without needing to know how that software works internally.Read more. The team determines which parts are deployed together and which can change independently. An application might be built as a Glossary · In briefmonolithA monolith is an application whose components form a single unit and are usually built and deployed together.Read more or divided into Glossary · In briefmicroservicesMicroservices are small, independently deployable software services that each perform a defined function and together form an application.Read more.

The appropriate structure depends on what the software must do. A high-traffic system has different requirements from an internal application for a small team. Security, availability, maintainability and existing systems also matter. An architecture pattern is therefore not a ready-made solution: it structures decisions within a particular context.

Architecture keeps evolving

Software architecture is not a one-off drawing at the start of a project. New features, growing usage and technical limitations can prompt changes to component boundaries or integrations. Teams assess these changes against the system's goals and constraints.

Architecture documentation helps people discuss and trace decisions. The actual architecture also exists in the code, infrastructure and data flows. Documentation and implementation therefore need to be maintained together.