finos / finos/architecture-as-code
Add Sequence Diagram Support to CALM for Complete Architecture Representation
- Dominant language
- TypeScript
- Stars
- 399
- Forks
- 138
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 38
Description
## Feature Proposal
Currently, CALM supports flow diagrams, which are effective for representing high-level process and architecture flows. However, modern architectural documentation often requires representation of low-level interactions between components, services, applications, and external systems.
To fully represent architectural designs within CALM, support for Sequence Diagrams would be valuable. Sequence diagrams enable architects and engineers to model:
- Detailed request/response interactions between components
- Service-to-service communication patterns
- API call sequences
- Event-driven workflows
- Error handling and alternate paths
- Asynchronous and synchronous interactions
- Integration and orchestration scenarios
Without sequence diagram support, users must rely on external tools to document these aspects, resulting in fragmented architecture documentation.
**Proposed Enhancement**
Introduce native support for Sequence Diagrams with capabilities such as:
- Participants/actors
- Lifelines
- Messages and responses
- Activation bars
- Alternative (alt) flows
- Optional (opt) flows
- Loops (loop)
- Parallel execution (par)
- Notes and annotations
- Business Value
Adding sequence diagram support would:
1. Enable end-to-end architecture representation within CALM.
2. Reduce dependency on external diagramming tools.
3. Improve documentation of low-level design and integration patterns.
4. Support both solution architects and development teams during design reviews.
5. Increase adoption of CALM as a comprehensive architecture modeling framework.
### Target Project:
...which existing project in the monorepo will this feature be added to?
### Description of Feature:
...what capabilities will the new feature provide, and why is it needed?
### User Stories:
...describe the feature from an end-user perspective, using "As a [role], I want [feature] so that [benefit]" format...
### Current Limitations:
...describe why this functionality isn't possible with the current implementation...
### Proposed Implementation:
...provide details of the intended implementation approach, including:
- Technical design considerations
- API changes (if applicable)
- Data model changes (if applicable)
- Dependencies on other components
### Alternatives Considered:
...what other approaches were considered and why were they rejected?
### Testing Strategy:
...how will this feature be tested? Include unit, integration, and any other testing considerations...
### Documentation Requirements:
...what documentation will need to be created or updated?
### Implementation Checklist:
- [ ] Design reviewed and approved
- [ ] Implementation completed
- [ ] Tests written and passing
- [ ] Documentation updated
- [ ] Relevant workflows updated (if needed)
- [ ] Performance impact assessed
### Additional Context:
...add any other context, diagrams, mockups, or screenshots about the feature request here...
Contributor guide
Research direction
The issue does not identify a target project, files, entry points, or tests. First clarify which monorepo project should own the feature and document the technical design, data model, API, testing strategy, and acceptance criteria before implementation can begin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100