Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions correlation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Problem
correlation_event_topics (src/event_correlation.rs) takes a correlation id and returns topics without it:

pub fn correlation_event_topics(
event_name: Symbol, event_version: Symbol, context: Symbol, _correlation_id: CorrelationId,
) -> (Symbol, Symbol, Symbol) {
(event_name, event_version, context)
}
The doc comment explains the id is "carried in the event payload instead" — but, as the companion issue documents, no payload carries it either.

Consequences:

The helper's contract is empty: its only behavior is to build the standard 3-topic tuple; the correlation id parameter is decorative, so any caller that passes a real id gets nothing back — the function cannot be used to propagate correlation across boundaries.
The doc and the code disagree about where the id goes: the topic function says "payload instead", the payload function (publish_settlement_intent_event) has no id — the id has no home.
The function name overstates its role: "correlation_event_topics" implies the topics encode the correlation; they do not.
Root cause
The helper was written to satisfy the "3-topic arity" convention while the correlation payload was never added; the parameter was kept for API shape.

Why this is architecturally hard
The fix depends entirely on the correlation-wiring decision (companion issue): if the id goes in the payload, this helper should be deleted (it adds nothing); if the id goes in a topic, the 3-topic layout documented in src/event_schema.rs changes and this helper becomes the place that encodes it.
The helper is public library API with tests asserting its current (no-op) behavior; removing or repurposing it must update those tests and the coordination harness.
This is a good candidate for the smallest possible resolution: delete the dead parameter and document that correlation is payload-only, or implement the payload.
Acceptance criteria
The helper either encodes the correlation id or is removed; no public function accepts a parameter it ignores.
The correlation id's home (topic or payload) is documented in one place.
Tests reflect the chosen behavior.




Loading