Skip to content

Commit

Permalink
Capture Wire Protocol design goals (#21)
Browse files Browse the repository at this point in the history
This is a follow up from Spec SIG meeting on Jul 18, 2019, recapping
the topics that I mentioned in the meeting.

The document will help us design the right wire protocol.
  • Loading branch information
tigrannajaryan authored and yurishkuro committed Jul 23, 2019
1 parent 4116f21 commit 2ccb7cb
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions specification/proto-design-goals.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Design Goals for OpenTelemetry Wire Protocol

We want to design a telemetry data exchange protocol that has the following characteristics:

- Be suitable for use between all of the following node types: instrumented applications, telemetry backends, local agents, stand-alone collectors/forwarders.

- Have high reliability of data delivery and clear visibility when the data cannot be delivered.

- Have low CPU usage for serialization and deserialization.

- Impose minimal pressure on memory manager, including pass-through scenarios, where deserialized data is short-lived and must be serialized as-is shortly after and where such short-lived data is created and discarded at high frequency (think telemetry data forwarders).

- Support ability to efficiently modify deserialized data and serialize again to pass further. This is related but slightly different from the previous requirement.

- Ensure high throughput (within the available bandwidth) in high latency networks (e.g. scenarios where telemetry source and the backend are separated by high latency network).

- Allow backpressure signalling.

- Be load-balancer friendly (do not hinder re-balancing).

0 comments on commit 2ccb7cb

Please sign in to comment.