Example: Decision Record Capture
User Request: "Document our decision to move from REST to GraphQL API"
Workflow
1. Extract Decision from Context
From conversation, identified:
- •Decision: Migrate customer-facing API from REST to GraphQL
- •Context: REST endpoints becoming unwieldy (50+ endpoints)
- •Alternatives: Keep REST, try gRPC, adopt GraphQL
- •Rationale: Better client experience, type safety, single endpoint
2. Find Decision Log
code
Notion:notion-search query: "architecture decisions" or "ADR"
Found: "Architecture Decision Records" database
3. Fetch Schema
code
Notion:notion-fetch
Got properties: Decision (title), Date, Status, Domain, Impact, Deciders, Stakeholders
4. Create Decision Record
code
Notion:notion-create-pages
parent: { data_source_id: "decision-log-collection-id" }
pages: [{
properties: {
"Decision": "Migrate to GraphQL API",
"date:Date:start": "2025-10-16",
"date:Date:is_datetime": 0,
"Status": "Accepted",
"Domain": "Architecture",
"Impact": "High"
},
content: "[Full decision record with context, rationale, alternatives...]"
}]
Content sample:
markdown
# Migrate Customer-Facing API to GraphQL ## Context Our REST API has grown to 50+ endpoints with inconsistent patterns. Frontend and mobile teams request new endpoints frequently, leading to: - API bloat and maintenance burden - Over-fetching/under-fetching data - Slow iteration on client features - Inconsistent error handling ## Decision Migrate customer-facing API from REST to GraphQL while maintaining REST for internal services. ## Rationale **Why GraphQL**: - Clients fetch exactly what they need (no over/under-fetching) - Single endpoint, self-documenting schema - Type safety with code generation - Better developer experience - Industry standard for client-facing APIs ## Options Considered ### Option A: Keep REST (Status Quo) **Pros**: No migration cost, team familiar **Cons**: Doesn't solve core problems, maintenance keeps growing **Decision**: Rejected - doesn't address root cause ### Option B: gRPC **Pros**: Performance, strong typing **Cons**: Browser support issues, steeper learning curve, not designed for client-facing **Decision**: Rejected - better for internal services ### Option C: GraphQL **Pros**: Solves over/under-fetching, great DX, strong ecosystem **Cons**: Learning curve, caching complexity, migration effort **Decision**: **Accepted** ## Consequences **Positive**: - Faster frontend/mobile development - Reduced API maintenance burden - Better type safety and tooling - Single endpoint simplifies deployment **Negative**: - 3-4 month migration timeline - Team needs training - Need to solve caching strategy - Monitoring/debugging patterns different ## Implementation Plan 1. GraphQL server setup (Apollo Server) 2. Schema design workshop 3. Gradual migration (start with new features) 4. Dual-run period (both REST and GraphQL) 5. Deprecate old REST endpoints **Timeline**: Start Q4 2025, complete Q1 2026 **Owner**: Backend team lead ## Success Metrics - API response times improve 30% - Client fetch efficiency (less data transferred) - Reduced new endpoint requests - Developer satisfaction scores
5. Make Discoverable
Added link from Architecture Wiki and notified team in Slack.
Key Success Factors
- •Captured decision while context fresh
- •Documented alternatives considered
- •Included both pros and cons
- •Clear implementation plan
- •Saved to decision log for future reference
- •Made discoverable for team