feat: simplify event service interface (#14859)
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com> Co-authored-by: marbar3778 <marbar3778@yahoo.com>
This commit is contained in:
parent
29477eb273
commit
da5db35bcc
@ -11,28 +11,33 @@ import (
|
||||
// event.Service is a core API type that should be provided by the runtime module being used to
|
||||
// build an app via depinject.
|
||||
type Service interface {
|
||||
// EmitProtoEvent emits events represented as a protobuf message (as described in ADR 032).
|
||||
EventManager(context.Context) Manager
|
||||
}
|
||||
|
||||
// Manager represents an event manager which can emit events.
|
||||
type Manager interface {
|
||||
// Emit emits events represented as a protobuf message (as described in ADR 032).
|
||||
//
|
||||
// Callers SHOULD assume that these events may be included in consensus. These events
|
||||
// MUST be emitted deterministically and adding, removing or changing these events SHOULD
|
||||
// be considered state-machine breaking.
|
||||
EmitProtoEvent(ctx context.Context, event protoiface.MessageV1) error
|
||||
Emit(ctx context.Context, event protoiface.MessageV1) error
|
||||
|
||||
// EmitKVEvent emits an event based on an event and kv-pair attributes.
|
||||
// EmitKV emits an event based on an event and kv-pair attributes.
|
||||
//
|
||||
// These events will not be part of consensus and adding, removing or changing these events is
|
||||
// not a state-machine breaking change.
|
||||
EmitKVEvent(ctx context.Context, eventType string, attrs ...KVEventAttribute) error
|
||||
EmitKV(ctx context.Context, eventType string, attrs ...Attribute) error
|
||||
|
||||
// EmitProtoEventNonConsensus emits events represented as a protobuf message (as described in ADR 032), without
|
||||
// EmitNonConsensus emits events represented as a protobuf message (as described in ADR 032), without
|
||||
// including it in blockchain consensus.
|
||||
//
|
||||
// These events will not be part of consensus and adding, removing or changing events is
|
||||
// not a state-machine breaking change.
|
||||
EmitProtoEventNonConsensus(ctx context.Context, event protoiface.MessageV1) error
|
||||
EmitNonConsensus(ctx context.Context, event protoiface.MessageV1) error
|
||||
}
|
||||
|
||||
// KVEventAttribute is a kv-pair event attribute.
|
||||
type KVEventAttribute struct {
|
||||
type Attribute struct {
|
||||
Key, Value string
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user