Skip to content

Document CHASM#9689

Merged
stephanos merged 4 commits intomainfrom
stephanos/chasm-graph
Apr 2, 2026
Merged

Document CHASM#9689
stephanos merged 4 commits intomainfrom
stephanos/chasm-graph

Conversation

@stephanos
Copy link
Copy Markdown
Contributor

@stephanos stephanos commented Mar 26, 2026

@stephanos stephanos force-pushed the stephanos/chasm-graph branch 30 times, most recently from 42a432f to 3379d25 Compare March 26, 2026 23:17
@stephanos stephanos force-pushed the stephanos/chasm-graph branch 17 times, most recently from 7f9c9be to fcea260 Compare March 27, 2026 20:07
@stephanos stephanos marked this pull request as ready for review March 27, 2026 20:07
@stephanos stephanos requested review from a team as code owners March 27, 2026 20:07
@stephanos stephanos requested a review from yycptt March 27, 2026 23:48
@stephanos stephanos force-pushed the stephanos/chasm-graph branch from fcea260 to 2415f91 Compare March 31, 2026 00:08
Comment thread docs/architecture/chasm.md Outdated
├── frontend.go # Frontend gRPC handler to map API calls to Engine operations
├── fx.go # fx module to wire the Library into the application
├── library.go # Registers component and task types with the Library
└── statemachine.go # Transition declarations
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just want to callout that the statemachine framework is not core part of CHASM. Library author can implement their component struct however they want, not necessarily using that.

Comment thread docs/architecture/chasm.md Outdated
Comment on lines +341 to +345
### Search Attributes
Indexed key-value pairs that make Executions queryable (e.g. by status, custom tags). A Component can provide them by implementing the search attributes provider interface.

### Memo
Unindexed key-value metadata attached to an Execution. A Component can provide them by implementing the memo provider interface.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Visibility is a bit complex here.

The SA and memo store in the Visibility components are custom SA and custom Memo from end users who are actually using an archetype.
The two providers interfaces are for component defined SA/Memo (think predefined SA/Memo in workflow world). Their value is calculated on the fly based on the root component's state.

<td width="500">

### Field types
- **`Field[T]`** — stores a single value.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When creating a field it can be either a ComponentField or a Data Field.

</td>
<td width="500">

### Field types
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's also a PointerField for pointing to other nodes in the tree. It's not used by any components yet and we are making some changes to what it can actually points to (only to ancestor nodes is what we are thinking). We can probably add it later when it's ready.

@stephanos stephanos force-pushed the stephanos/chasm-graph branch from c62844c to 653dc33 Compare April 2, 2026 21:37
@stephanos stephanos enabled auto-merge (squash) April 2, 2026 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants