Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADR - Architecture Decision Records #225

Draft
wants to merge 7 commits into
base: develop
Choose a base branch
from
Draft

ADR - Architecture Decision Records #225

wants to merge 7 commits into from

Conversation

tuj
Copy link
Contributor

@tuj tuj commented Nov 26, 2024

Link to ticket

https://leantime.itkdev.dk/#/tickets/showTicket/2770

Description

Adds ADRs.

@tuj tuj self-assigned this Nov 26, 2024
@tuj tuj added the documentation Improvements or additions to documentation label Nov 26, 2024
@tuj tuj changed the title 2770: Started work on ADRs ADR - Architecture Decision Records Nov 26, 2024
@tuj tuj requested a review from turegjorup November 27, 2024 10:13
Copy link

@Anna-itk Anna-itk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! Added some suggested minor changes.

We need to record the architectural decisions made on this project. Architectural Decision Records as
[described by Michael Nygard](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions) provides a
framework for writing down these decisions.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be more understandable if we give some context as to why we are starting the ADR now. Maybe we could write that the ADR has been started at a point where the project has been running for several years but this seemed to be the right time because the project has evovlved to become more complex and that there are more developers involved than previous. This calls for summarizing some of the baselines of the project so we make sure to keep some of the original thoughts and decisions in the project documented and so that we remember to note if we make any changes as we move forward.

This will make the system more future-proof.

[OpenAPI](https://www.openapis.org/) is a standard for describing an API interface.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I understand it one of the great benefits of the API first approach also is that it is possible that content can be delivered from another admin/contentplatform than the OS2Display admin - maybe that is worth noting here


By versioning the API we can communicate changes in the API. If an endpoint changes in a way that breaks backwards
compatibility we will change the route version. An example of a backwards compatibility break is changing field names.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it necessary to say that we use sem or simver?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not use semver for routes. We use /v1, /v2, etc prefix for routes.


The browser sets sandboxing constraints on the application when running in a browser.

The benefit is that that client should be able to run on most environments.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also one of the benefits as I see it is that the browser is a user friendly medium and easy to interact with and understand from a configuration point of view. This makes it easier to set up a screen

## Consequences

Features that are not "core" will have to be implemented as configurable wherever possible.
This will introduce extra work when implementing features.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also one of the more negative consequences will be that you potentially have an amount of the application code as a "dead" part, maybe this will also have some negative influence on performance?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think there is a big negative impact on performance. But it will make the application code more complex, every time extra configuration is added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants