githubEdit

Architecture Design Overview

This chapter describes a process to guide you in designing an architecture for a software system. This is an opinionated proposal on how to creating an architecture. You may deviate from it at any point, but if you don't know where to start, this is a good starting point.

In designing the architecture, you depend on a lot of Inputs from the previous phases and architecture governance, while creating a range of Outputs.

Before You Start

Before you start you need to establish the participants for this phase and gather the inputs required for this phase:

Roles

A non exhaustive list includes:

  • A solution architect / technical architect - responsible for the architecture design

  • The product owner - responsible for the scope of the solution

  • Business architects - responsible for and familiar with the functional design of the solution

  • Stakeholders from partnering systems - responsible for one or more external systems

Inputs

  • Inputs from previous phases

    • Functional Requirements

      • a domain model & context map, describing one or more bounded contexts [TODO: Add image that show example context map. Reuse from Service Design Chapter if possible]

      • for example a Business Process Model, a User Journey or a GovStack Service Blueprintarrow-up-right

      • ideally a Functional Data Model (if available)

      • any design documents created during the previous phases

    • Non-Functional Requirements

    • UX Guidelines (if available)

      • for example wireframes, styleguide

      • UX Flow Guidelines (example: user should move through steps sequentially or should be allowed to jump between steps as he likes)

    • Proposed Building Blocks (optional)

  • Other Inputs

  • The System Landscape Diagram (if it already exists)

    • An overview of Building Blocks already used in the organization

  • GovStack Building Block Specifications

    • Additional documentation of existing instances of Building Blocks (if available)

  • API specification of external systems

Criteria for Success

Outputs

At the end of this process you will have produced a few artifacts, with the purpose of guiding the later phases, like Implementation, Operations & Maintenance. Those artifacts include:

  • an (updated) System Landscape Diagram

  • a Software Architecture, documented in System Context, Container & Component Diagrams

  • a technical data model

  • the api specification

  • a technology stack

  • developer guidelines

Designing an architecture is an ongoing and iterative process though, so expect to update & evolve the architecture regularly throughout the lifecycle of the software system.

Use the C4 Model

This guide recommends to use the C4 model and uses it in its examples.

Using a model like C4 helps by providing a clear terminology. Terms like system, container or component are vague, overused and have different meaning in different contexts.

The C4 model is lightweight and easy to understand, even without a lot of training or experience. It only uses a few types of diagrams, some of which are even optional.

You can find a detailed introduction under:

C4 Terminology

Adapted from https://c4model.com (CC BY 4.0). Changes made.

Overview of C4 diagrams

Adapted from https://c4model.com (CC BY 4.0). Changes made.

Sources

Governance of the Architecture

Architecture governance ensures that digital solutions are not developed in isolation, but are consistently aligned with the overarching Government Architecture and its strategic objectives. It provides the decision-making and control mechanisms that translate architectural principles into enforceable rules across design, implementation, and operation (see the “Government architecture” chapter for detailed guidance). In practice, architecture governance operationalises the Government Architecture by mandating the use of approved building blocks, shared standards, and common technology stacks. This includes compliance with defined APIs, data models, data formats, interoperability standards, and security requirements, ensuring coherence across application, data, and technology layers.

At the same time, architecture governance acts as a critical enabler of interoperability. By embedding legal, organisational, semantic, and technical interoperability requirements into architectural decision-making, it ensures that systems can effectively exchange data and services across institutional and jurisdictional boundaries. This aligns closely with the interoperability governance principles described in the Interoperability chapter and the layered approach of the European Interoperability Framework (see the “Interoperability chapter” for detailed guidance).

Architecture planning serves as the practical bridge between governance and implementation. Through architecture planning activities - such as capability mapping, dependency management, and standards selection - governance rules are translated into concrete architectural roadmaps. This ensures that interoperability considerations and Government Architecture principles are addressed early, reducing fragmentation, duplication, and costly rework later in the lifecycle. In most cases, referencing existing governance frameworks and architectural guidelines is sufficient. However, any deviation from agreed architectural principles or interoperability standards should be identified early and discussed with the responsible governance bodies to safeguard alignment, sustainability, and cross-government coherence.

[TODO: Add links to chapters / documents on Architecture Governance and/or Government Architecture.]

How to apply Architecture Governance in this phase

In almost all cases, the organisation’s governance framework or architectural guidelines should be followed as closely as possible. Any deviation should be flagged early and discussed with the responsible governance bodies to avoid rework later in the project.

Last updated

Was this helpful?