Skip to content

ADR-006 - Application Architecture

Statusaccepted
Date2025-04-02
Decision MakersDardan Bujupaj (AX), Marc Gähwiler (AX)
Referenced ByADR-007 - Technologies (Backend)
ADR-015 - Frontend-Backend Communication

Context

The planned application requires both a sophisticated User Interface and business logic that must be implemented at an authoritative level. We need a robust architecture that can effectively handle these requirements while enabling efficient feature implementation. Additionally, the architecture should ensure long-term maintainability and stability as the application evolves.

Decision

The architecture will be designed based on a Client-Server Model. The following sections define the overall design decisions. Used technologies will be defined in later ADRs.

Client

The Client will be a single page application (SPA) based on web technologies. This allows for designing a good and fluid User Experience.

Server

The Server will implement all functionalities that need access to privileged resources. It will handle communication with all adjacent services. It will handle persistence of the data as needed.

Consequences

  • Used technologies for the server need to be defined
  • Used technologies for the client need to be defined
  • Communication Interface between the server and client need to be defined (OpenAPI Specification)

Alternatives

  • Use a fullstack framework
    • Pro: easier to define communication between server and client
    • Con: harder to create a good User Experience and separation of concerns