Skip to content

Constraints

This section represents various restrictions that have to be respected within the design of the system and explains their motivations where necessary.

Technical Constraints

Constraint Background/Motivation
Backend services are written using ASP.NET Core Since I am mainly a .NET dev and I am familiar with this technology.
Game is accessible as a web application To make the game more accessible it should be possible to be played without downloading an executable.
Authentication uses Duende Identity solutions Reimplementing authentication is tedious and unnecessary. Duende integrates well with ASP.NET Core and is free to use for non commercial projects.
Deployed in the Azure Cloud Properly self hosting a complete software stack is its own project which I am not interested in tackling in the scope of this project. I already have limited experience with IaC on Azure.
Uses the OpenTelemetry framework for any telemetry (logs, traces and metrics) This will standardise telemetry among all applications and tech stacks and allow integration into basically every telemetry aggregator.

Organizational Constraints

Constraint Background/Motivation
Open Source Code is published as open source to be more accessible for other people interested in the project.
Code is hosted as a Monorepo. Since this project will span multiple applications, this will make pull requests more reviewable and deployment workflows and secrets centralized.
Code is hosted on Github I am familiar with Github actions and Github integrates well with Azure.