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
In order to ensure that callers of the EventHubProducer::SendAsync method are assured that the set of events being sent is of the appropriate size to be accepted by the Event Hubs service, creating of an EventDataBatch is necessary. The batch provides a deterministic and authoritative understanding of the allowable size and testing if a given event can fit through its TryAdd method. While the use of a batch is helpful for scenarios where events of large or varying size are used, or those where callers wish to try and send sets of events with the most efficient network use, it is a point of friction for other scenarios.
To better support scenarios where callers wish to send events more frequently and are not as concerned with maximizing efficiency, a SendAsync overload that accepts a set of events and/or a single event is preferable. These overloads may or may not be responsible for automatically breaking the set into batches as part of the process, but should be able to deal with partial failure scenarios if they apply. Some design work and approval remain outstanding.
Prerequisites:
Completion of the design and approvals by the feature team and architecture board.
Risks:
If the design deviates significantly from the current options, the estimation and scoping in this issue may become invalid and need to be revisited. Scheduling of implementation in the same milestone as a design is being finalized inherently carries a measure of risk.
Scope of Work
Implement the approved design, adding the necessary overload(s) for SendAsync and, if needed, CreateBatches, along with the test coverage necessary to ensure the implementation is complete, correct, and works as designed.
Success Criteria
The API surface needed to support the "smarter send" feature has been implemented, and the associated types preserve their current API with no breaking changes.
The tests necessary for its validation have been created or adjusted and pass reliably; tests that do not focus on the extension points have been removed and no base functionality is included.
The existing live test suite continues to produce deterministic results and pass reliably.
Summary
In order to ensure that callers of the
EventHubProducer::SendAsync
method are assured that the set of events being sent is of the appropriate size to be accepted by the Event Hubs service, creating of anEventDataBatch
is necessary. The batch provides a deterministic and authoritative understanding of the allowable size and testing if a given event can fit through itsTryAdd
method. While the use of a batch is helpful for scenarios where events of large or varying size are used, or those where callers wish to try and send sets of events with the most efficient network use, it is a point of friction for other scenarios.To better support scenarios where callers wish to send events more frequently and are not as concerned with maximizing efficiency, a
SendAsync
overload that accepts a set of events and/or a single event is preferable. These overloads may or may not be responsible for automatically breaking the set into batches as part of the process, but should be able to deal with partial failure scenarios if they apply. Some design work and approval remain outstanding.Prerequisites:
Risks:
Scope of Work
SendAsync
and, if needed,CreateBatches
, along with the test coverage necessary to ensure the implementation is complete, correct, and works as designed.Success Criteria
The API surface needed to support the "smarter send" feature has been implemented, and the associated types preserve their current API with no breaking changes.
The tests necessary for its validation have been created or adjusted and pass reliably; tests that do not focus on the extension points have been removed and no base functionality is included.
The existing live test suite continues to produce deterministic results and pass reliably.
References
The text was updated successfully, but these errors were encountered: