mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-26 01:17:00 +02:00
This PR starts an ADR for logging levels, and how to make your coworkers' days who are on-call less noisy. This is my initial suggestion. Please feel free to help me with fleshing out both the table for what log levels means to you or if you disagree with what I've put as a background. My impression is that we are pretty good at this, but we could be better, and having an ADR to lean on when pushing back on PR's log levels could help us. Thanks to @kwasniew for the push to start the ADR. Examples: *038c10f612/src/lib/db/account-store.ts (L164-L173)
And probably the storeFootprint method in our client-feature-toggle-delta *038c10f612/src/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.ts (L363-L370)
*293304a5d6/src/traffic-data/traffic-data-usage-service.ts (L69)
--------- Co-authored-by: Melinda Fekete <melinda.fekete@getunleash.io>
2.5 KiB
2.5 KiB
title |
---|
ADR Overview |
Introduction
Architectural decision records are a record of design decisions we have made in the past because we belived they would help our code quality over time. Any ADR can be challenged, but two conditions must be met to change an ADR:
- The proposed solution must provide a tangible benefit in terms of code quality.
- The benefits of the proposed solution must outweigh the effort of retroactively changing the entire codebase. One such example is the decision to re-write Unleash to TypeScript.
Overarching ADRs
These ADRs describe decisions that concern the entire codebase. They apply to back-end code, front-end code, and code that doesn't neatly fit into either of those categories.
- Domain language
- Separation of request and response schemas
- Error Logging stack traces
- Logging levels
Back-end ADRs
We are in the process of defining ADRs for the back end. At the time of writing we have created the following ADRS:
- Naming
- Preferred export
- Breaking DB changes
- POST/PUT API payload
- Specificity in database column references
- Write model vs Read models
- Frontend API Design
Front-end ADRs
We have created a set of ADRs to help guide the development of the front end:
- Component naming
- Interface naming
- Preferred component props usage
- Preferred export
- Preferred function type
- Preferred styling method
- Preferred data mutation method
- Preferred data fetching method
- Preferred folder structure
- Preferred form architecture
- OpenAPI SDK generator
- Use of conditionals in JSX (refactor of <ConditionallyRender />)