append method
Future<WriteResult>
append(
- StreamState state,
- Stream<
EventData> events, { - UserCredentials? userCredentials,
- EventStoreClientOperationOptions? operationOptions,
Append events
to stream given by state
.
Returns as WriteResult
when the operation has completed.
If a concurrent write has occurred, a WrongExpectedVersionResult
is returned. Otherwise, WriteSuccessResult is returned.
Implementation
Future<WriteResult> append(
StreamState state,
Stream<EventData> events, {
UserCredentials? userCredentials,
EventStoreClientOperationOptions? operationOptions,
}) {
return $runRequest<WriteResult>(() async {
final client = await $getClient();
if (settings.batchAppend) {
// From v21_LTS the ability to use multiplex appends over
// a single gRPC channel was added with BatchAppend. This improves
// speed by eliminating the channel setup overhead. This results
// in a performance improvement in the order of 20x.
return _batchAppend(
state,
client,
events,
userCredentials,
operationOptions,
);
}
return _append(
state,
client,
events,
userCredentials,
operationOptions,
);
});
}