This repository has been archived by the owner on Sep 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
/
shipper.proto
31 lines (27 loc) · 1.53 KB
/
shipper.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
// or more contributor license agreements. Licensed under the Elastic License;
// you may not use this file except in compliance with the Elastic License.
syntax = "proto3";
option go_package = "github.com/elastic/elastic-agent-shipper-client/pkg/proto";
package elastic.agent.shipper.v1;
import "messages/publish.proto";
import "messages/persisted_index.proto";
service Producer {
// Publishes a list of events via the Elastic agent shipper.
// Blocks until all processing steps complete and data is written to the queue.
// The order of `PublishRequest.events` always matches `PublishReply.results`.
//
// Returns the `codes.ResourceExhausted` gRPC status code if the queue is full and none of the events
// can be accepted at the moment.
//
// If the queue could accept some events from the request, this returns a successful response
// containing results for the first K events that were accepted by the queue.
// The client is expected to retry sending the rest of the events in a separate request later.
//
// Inputs may execute multiple concurrent Produce requests for independent data streams.
// The order in which concurrent requests complete is not guaranteed. Use sequential requests to
// control ordering.
rpc PublishEvents(messages.PublishRequest) returns (messages.PublishReply);
// Returns the shipper's uuid and its position in the event stream.
rpc PersistedIndex(messages.PersistedIndexRequest) returns (stream messages.PersistedIndexReply);
}