You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
12
12
- Support publishing events consumed from [NATS](https://nats.io) topics. See the [documentation](https://accenture.github.io/reactive-interaction-gateway/docs/event-streams.html#nats) for how to get started. [#297](https://github.com/Accenture/reactive-interaction-gateway/issues/297)
13
13
- Added validation for reverse proxy configuration. Now it crashes RIG on start when configuration is not valid or returns `400` when using REST API to update configuration. [#277](https://github.com/Accenture/reactive-interaction-gateway/issues/277)
14
+
- Added basic distributed tracing support in [W3C Trace Context specification](https://www.w3.org/TR/trace-context/) with Jaeger and Openzipkin exporters. RIG opens a span at the API Gateway and emits trace context in Cloud Events following the [distributed tracing spec](https://github.com/cloudevents/spec/blob/v1.0/extensions/distributed-tracing.md). [#281](https://github.com/Accenture/reactive-interaction-gateway/issues/281)
RIG is able to process distributed tracing data following the [W3C Trace Contexts](https://www.w3.org/TR/trace-context/). Sometimes RIG expects the trace context to be in the (HTTP) Header, and sometimes in the event payload itself. With events, we always speak of cloudevents following the [distributed tracing extension](https://github.com/cloudevents/spec/blob/v1.0/extensions/distributed-tracing.md).
8
+
9
+
There is one key rule when RIG expects the trace context either in the header or in the cloudevent:
10
+
11
+
1. if we talk of messages, then RIG expects the trace context to be in the (HTTP) header
12
+
2. if we talk of events (cloudevents), then RIG expects the trace context to be in the cloudevent
13
+
14
+
In our point of view, the difference of a message to an event is the following:
15
+
16
+
* a message is a request from one system to another for an action to be taken. The sender expects that the message will get processed somehow
17
+
* an event is a notification that data has been processed and some objects’ state has changed
18
+
* thus, a message and events have a different correlation between producer and consumer:
19
+
* messages have 1-to-1 correlation between a producer and a consumer
20
+
* events have a 1-to-n correlation between a producer and (potentially multiple) consumers
21
+
22
+
As a concrete example how distributed tracing has been implemented, read about it in the [channels-example](../examples/channels-example/README.md#one-word-to-distributed-tracing).
[Download some quickstart scripts for Kafka](https://kafka.apache.org/quickstart) and run a consumer (note: there must not be a space in the path of the script):
21
+
22
+
```shell
23
+
/path/to/download/folder/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic example --from-beginning
24
+
```
25
+
26
+
After that we should be able to send events to Kafka through RIG:
0 commit comments