[CL-875] 0028 - Adopt Angular Signals for Component State
🎟️ Tracking
https://bitwarden.atlassian.net/browse/CL-875
📔 Objective
Adds an ADR that describes our preference for signals over RxJS in Angular components.
⏰ Reminders before review
- Contributor guidelines followed
- All formatters and local linters executed and passed
- Written new unit and / or integration tests where applicable
- Protected functional changes with optionality (feature flags)
- Used internationalization (i18n) for all UI strings
- CI builds passed
- Communicated to DevOps any deployment requirements
- Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team
🦮 Reviewer guidelines
- 👍 (
:+1:) or similar for great changes - 📝 (
:memo:) or ℹ️ (:information_source:) for notes or general info - ❓ (
:question:) for questions - 🤔 (
:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion - 🎨 (
:art:) for suggestions / improvements - ❌ (
:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention - 🌱 (
:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt - ⛏ (
:pick:) for minor or nitpick changes
Deploying contributing-docs with
Cloudflare Pages
| Latest commit: |
c977fa5
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://c235cbb4.contributing-docs.pages.dev |
| Branch Preview URL: | https://signals-adr.contributing-docs.pages.dev |
Checkmarx One – Scan Summary & Details – d2e4f0a0-08d9-4d32-b32e-bf8224e99acd
Great job! No new security vulnerabilities introduced in this pull request
Claude finished @willmartian's task —— View job
Review complete
This ADR documents an important architectural decision for Angular development at Bitwarden. The structure follows the established ADR pattern well, and the decision is clearly explained.
Summary of findings
Finding 1: Performance claim needs supporting evidence or clarification (💭)
Finding 2: Grammatical issue with punctuation in line 17 (⚠️)
Finding 3: Consider adding concrete examples to distinguish UI-coupled vs business logic services (🎨)
Finding 4: Typo - "adhoc" should be "ad hoc" (⚠️)
Finding 5: Migration strategy could be more detailed, similar to ADR 0027's implementation plan (💭)
PR metadata
The PR title and description are clear and appropriate for a documentation change. The objective clearly explains that this adds an ADR about preferring signals over RxJS in Angular components.
What was done well
The ADR effectively articulates the rationale for adopting signals, provides clear API migration paths, and thoughtfully addresses portability concerns for non-Angular environments.
I like the Claude feedback as of this writing so let's continue improving that. There's also https://contributing.bitwarden.com/contributing/code-style/web/angular/#reactivity-adr-0003--adr-0028 which can get a formal link.
Can we add a admonitions to https://contributing.bitwarden.com/architecture/adr/observable-data-services linking to this ADR? I think it slightly supersedes the existing one.