-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathasyncapi.yaml
More file actions
177 lines (168 loc) · 6.7 KB
/
asyncapi.yaml
File metadata and controls
177 lines (168 loc) · 6.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
asyncapi: 2.6.0
info:
title: SourceOS/SociOS Event Spine
version: 2.0.0
description: |
The SourceOS/SociOS Event Spine carries domain events from the metadata governance plane.
All messages use the EventEnvelope schema as their payload wrapper. The `eventType` field
inside the envelope identifies the domain event (e.g. "DatasetUpserted", "PolicyEvaluated").
Consumers should subscribe to only the channels relevant to their domain.
All channels use Kafka as the default broker.
servers:
development:
url: kafka://localhost:9092
protocol: kafka
description: Local Kafka broker for development and testing.
production:
url: kafka://kafka.srcos.internal:9092
protocol: kafka
description: Production Kafka cluster.
defaultContentType: application/json
channels:
srcos.v2.dataset.events:
description: Events emitted when a Dataset, Field, SchemaDefinition, or PhysicalAsset is created or updated.
bindings:
kafka:
topic: srcos.v2.dataset.events
partitions: 6
replicas: 3
topicConfiguration:
retention.ms: 604800000
cleanup.policy: delete
publish:
operationId: publishDatasetEvent
summary: Publish a dataset domain event
description: Publishes an event whenever a Dataset, Field, SchemaDefinition, or PhysicalAsset changes state.
message:
name: DatasetEvent
title: Dataset Domain Event
summary: A change event for a Dataset, Field, SchemaDefinition, or PhysicalAsset.
description: |
The `eventType` in the payload envelope identifies the specific change:
- `DatasetUpserted` — a Dataset was created or updated
- `FieldUpserted` — a Field was created or updated
- `SchemaDefinitionUpserted` — a SchemaDefinition was created or updated
- `PhysicalAssetUpserted` — a PhysicalAsset was created or updated
contentType: application/json
payload: { $ref: './schemas/EventEnvelope.json' }
bindings:
kafka:
key:
type: string
description: The `objectId` URN of the affected entity, used as the Kafka message key for partition co-location.
srcos.v2.policy.events:
description: Events emitted when a Policy is created or updated, or when a PolicyDecision is recorded.
bindings:
kafka:
topic: srcos.v2.policy.events
partitions: 3
replicas: 3
topicConfiguration:
retention.ms: 2592000000
cleanup.policy: delete
publish:
operationId: publishPolicyEvent
summary: Publish a policy domain event
description: Publishes an event whenever a Policy is upserted or a PolicyDecision is evaluated.
message:
name: PolicyEvent
title: Policy Domain Event
summary: A change event for a Policy or PolicyDecision.
description: |
The `eventType` in the payload envelope identifies the specific change:
- `PolicyUpserted` — a Policy was created or updated
- `PolicyDecisionRecorded` — a PolicyDecision was evaluated and persisted
- `CapabilityTokenIssued` — a CapabilityToken was issued
contentType: application/json
payload: { $ref: './schemas/EventEnvelope.json' }
bindings:
kafka:
key:
type: string
description: The `objectId` URN of the affected Policy or PolicyDecision.
srcos.v2.run.events:
description: Events emitted when a RunRecord or ProvenanceRecord is persisted.
bindings:
kafka:
topic: srcos.v2.run.events
partitions: 6
replicas: 3
topicConfiguration:
retention.ms: 2592000000
cleanup.policy: delete
publish:
operationId: publishRunEvent
summary: Publish a run domain event
description: Publishes an event when a workload run completes or provenance is captured.
message:
name: RunEvent
title: Run Domain Event
summary: A completion event for a RunRecord or ProvenanceRecord.
description: |
The `eventType` in the payload envelope identifies the specific change:
- `RunRecorded` — a RunRecord was persisted
- `ProvenanceRecorded` — a ProvenanceRecord was persisted
contentType: application/json
payload: { $ref: './schemas/EventEnvelope.json' }
bindings:
kafka:
key:
type: string
description: The `objectId` URN of the RunRecord or ProvenanceRecord.
srcos.v2.mapping.events:
description: Events emitted when a MappingSpec is created, updated, or its state changes.
bindings:
kafka:
topic: srcos.v2.mapping.events
partitions: 3
replicas: 3
topicConfiguration:
retention.ms: 604800000
cleanup.policy: delete
publish:
operationId: publishMappingEvent
summary: Publish a mapping domain event
description: Publishes an event whenever a MappingSpec is upserted or its review state changes.
message:
name: MappingEvent
title: Mapping Domain Event
summary: A change event for a MappingSpec.
description: |
The `eventType` in the payload envelope identifies the specific change:
- `MappingUpserted` — a MappingSpec was created or updated
- `MappingStateChanged` — a MappingSpec state changed (proposed → curated, rejected)
contentType: application/json
payload: { $ref: './schemas/EventEnvelope.json' }
bindings:
kafka:
key:
type: string
description: The `objectId` URN of the affected MappingSpec.
srcos.v2.glossary.events:
description: Events emitted when a GlossaryTerm is created or updated.
bindings:
kafka:
topic: srcos.v2.glossary.events
partitions: 3
replicas: 3
topicConfiguration:
retention.ms: 604800000
cleanup.policy: delete
publish:
operationId: publishGlossaryEvent
summary: Publish a glossary domain event
description: Publishes an event whenever a GlossaryTerm is upserted.
message:
name: GlossaryEvent
title: Glossary Domain Event
summary: A change event for a GlossaryTerm.
description: |
The `eventType` in the payload envelope identifies the specific change:
- `GlossaryTermUpserted` — a GlossaryTerm was created or updated
contentType: application/json
payload: { $ref: './schemas/EventEnvelope.json' }
bindings:
kafka:
key:
type: string
description: The `objectId` URN of the affected GlossaryTerm.