@@ -5,6 +5,10 @@ methodology for [issue #2368](https://github.com/exceptionless/Exceptionless/iss
55It is deliberately separate from the public API documentation until the V3
66contract is ready for rollout.
77
8+ The companion [ client protocol and ecosystem plan] ( event-ingestion-v3-client-protocol.md )
9+ defines the minimum sender, capability profiles, Sentry and Raygun comparison,
10+ and compatibility rules for future event and non-event telemetry.
11+
812## Objectives
913
1014Event ingestion V3 is a breaking, performance-first API with these invariants:
@@ -22,6 +26,9 @@ Event ingestion V3 is a breaking, performance-first API with these invariants:
2226 not enqueue it for another process to deserialize.
2327- Clients send raw stack traces. The server computes the grouping fingerprint
2428 and builds the persisted structured error.
29+ - A new language can implement the core sender using only its standard HTTPS
30+ and JSON facilities. Advanced reliability and framework features are
31+ independently testable capability profiles, not ingestion prerequisites.
2532- Events assigned to discarded stacks terminate before billable admission,
2633 full error materialization, event persistence, stack statistics, or side
2734 effects.
@@ -245,6 +252,9 @@ Completion requires all of the following evidence:
245252- Multi-instance tests for route status changes and quota reservation.
246253- V2 serialization audit results before and after shared-service adoption.
247254- OpenAPI V3 baseline and HTTP samples.
255+ - Language-neutral client specification, golden fixtures, black-box conformance
256+ tests, and timed new-language implementation evidence meeting the client
257+ effort gates.
248258- Microbenchmark reports and end-to-end load results for the scenario matrix.
249259- A staged rollout through the internal project and selected projects with a
250260 documented rollback switch.
@@ -280,6 +290,18 @@ hashed raw-trace fallback and increment a parser-fallback metric without logging
280290the trace. Optional ` stacking.signature_data ` and ` stacking.title ` provide
281291explicit manual stacking.
282292
293+ Only ` id ` and ` type ` are required. Maintained SDKs should also identify
294+ themselves with ` client.name ` and ` client.version ` ; applications can send
295+ first-class ` version ` and ` level ` values without knowing internal event data
296+ keys. Unknown event properties are ignored so additions remain compatible.
297+
298+ ` /api/v3/events ` remains an event-only NDJSON stream. It will not acquire a
299+ per-line kind/payload wrapper or a stream header. A future optional,
300+ length-delimited advanced transport can carry the exact same event JSON beside
301+ attachments, minidumps, profiles, or other typed items. This keeps the minimum
302+ client smaller than Sentry's envelope implementation without forcing binary or
303+ heterogeneous data into the event object.
304+
283305The executable reference client and repeatable load harness live in
284306` benchmarks/Exceptionless.Ingestion.Load ` ; usage is documented in
285307` benchmarks/README.md ` . It can submit the same conceptual corpus through the
0 commit comments