akkaserverless.eventing.proto Maven / Gradle / Ivy
// Copyright 2021 Lightbend Inc.
// Extension for specifying which topics a gRPC endpoint should be connected
// to, in order to facilitate consuming and producing events from a message broker.
syntax = "proto3";
package akkaserverless;
option go_package = "github.com/lightbend/akkaserverless-go-sdk/akkaserverless;akkaserverless";
option java_multiple_files = true;
option java_outer_classname = "EventsProto";
option java_package = "com.akkaserverless";
import "google/protobuf/descriptor.proto";
// Eventing configuration for a gRPC method.
message Eventing {
// The event source in configuration.
EventSource in = 1;
// The event destination out configuration.
//
// Optional, if unset, messages out will not be published anywhere.
EventDestination out = 2;
}
// Event source configuration
message EventSource {
// The consumer group id.
//
// By default, all rpc methods on a given service with the same source will be
// part of the same virtual consumer group, messages will be routed to the
// different methods by type. This can be used to override that. If you want
// multiple methods to act as independent consumers of the same source (ie, if
// you want the same event to be published to each consumer) then give each
// consumer a unique name.
//
// Note that this does depend on the event source supporting multiple consumer
// groups. Queue based event sources may not support this.
string consumer_group = 1;
oneof source {
// A topic source.
//
// This will consume events from the given topic name.
string topic = 2;
// Source for events emitted by an Event Sourced Entity.
//
// This will consume events from the Event Sourced Entity with the given entity type name.
string event_sourced_entity = 3;
// Source for updates issued by a Value Entity.
//
// This will consume changes to the Value Entity with the given entity type name.
string value_entity = 4;
}
}
message EventDestination {
oneof destination {
string topic = 1;
}
}