finos / finos/architecture-as-code

Add Sequence Diagram Support to CALM for Complete Architecture Representation

Open
#2,950 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.