package component
- Alphabetic
- Public
- Protected
Type Members
- final case class ClientAction(action: ClientAction.Action = kalix.protocol.component.ClientAction.Action.Empty, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[ClientAction] with Product with Serializable
An action for the client (see ActionResponse in action.proto)
An action for the client (see ActionResponse in action.proto)
- Annotations
- @SerialVersionUID()
- final case class Failure(commandId: Long = 0L, description: String = "", grpcStatusCode: Int = 0, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[Failure] with Product with Serializable
A failure reply.
A failure reply. If this is returned, it will be translated into a gRPC unknown error with the corresponding description if supplied.
- commandId
The id of the command being replied to. Must match the input command.
- description
A description of the error.
- grpcStatusCode
The gRPC status code. If this failure is being sent as an action for a gRPC response, and this is non zero, then this is the code that will be used. Note that a status code of zero in gRPC means OK. Since this is a failure, zero passed here is not interpreted to mean OK, but rather indicates that no gRPC status code is explicitly specified. A status code of 2, meaning unknown error, will be sent by default. When HTTP transcoding is being used, the gRPC status code will be translated to an equivalent HTTP status code. HTTP status codes MUST NOT be passed in this field. See https://grpc.github.io/grpc/core/md_doc_statuscodes.html for a list of gRPC status codes and their meanings.
- Annotations
- @SerialVersionUID()
- final case class Forward(serviceName: String = "", commandName: String = "", payload: Option[Any] = _root_.scala.None, metadata: Option[Metadata] = _root_.scala.None, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[Forward] with Product with Serializable
Forwards handling of this request to another component.
Forwards handling of this request to another component.
- serviceName
The name of the service to forward to.
- commandName
The name of the command.
- payload
The payload.
- metadata
The metadata to include with the forward
- Annotations
- @SerialVersionUID()
- final case class Metadata(entries: Seq[MetadataEntry] = _root_.scala.Seq.empty, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[Metadata] with Product with Serializable
Transport-specific metadata associated with a message.
Transport-specific metadata associated with a message.
The semantics of the metadata are not defined in this protocol, but rather, depend on the transport on which a particular instance of the metadata maps to. What keys or values are allowed or disallowed, whether duplicate values for the same key are allowed and how they are handled, and whether key names are case sensitive or not, are all undefined in the context of the Kalix protocol.
If a metadata entry associated with a message can't be expressed in an underlying transport, for example, due to invalid characters in a key or value, the behavior of the proxy is undefined. This is because metadata is transport specific, so if the user service chooses to use metadata, it is choosing to be specific to a particular transport, which is beyond the scope of the Kalix protocol, and it's therefore the user services's responsibility to adhere to the semantics of that transport. The proxy MAY decide to drop metadata entries if it knows they are invalid or unsupported. If a metadata entry is dropped, the proxy MAY inform the user service that the entry was dropped by sending an error message to the Discovery.ReportError gRPC call.
The metadata MAY also contain CloudEvent metadata. If a message comes from an Kalix event source, the Kalix proxy MUST attach CloudEvent metadata to it if the event doesn't already have CloudEvent metadata attached to it. This metadata SHALL be encoded according to the binary mode of the CloudEvent HTTP protocol binding, which can be found here:
https://github.com/cloudevents/spec/blob/master/http-protocol-binding.md
The Kalix proxy MAY synthesize appropriate values for Kalix metadata if no equivalent metadata exists in the event source, for example, if there is no type, the Kalix proxy MAY use the name of the gRPC message as the CloudEvent type, and if there is no source, the Kalix proxy MAY use the name of the topic as the source.
If an incoming message does have CloudEvent metadata attached to it, the Kalix proxy MUST transcode that CloudEvent metadata to the HTTP protocol binding as described above.
Messages sent from the user service to an event destination MAY include CloudEvent metadata. If they include any CloudEvent metadata, they MUST include all required CloudEvent attributes, including id, source, specversion and type. The behavior of the proxy is undefined if some of these attributes, but not others, are included - the proxy MAY ignore them all, or MAY generate values itself, but SHOULD NOT fail sending the message. If the destination for the message is an event destination, the Kalix proxy MUST transcode the supplied Kalix metadata to a binding appropriate for the underlying transport for that event destination, it MUST NOT pass the CloudEvent metadata as is unless the transport uses the same binding rules.
- entries
The metadata entries.
- Annotations
- @SerialVersionUID()
- final case class MetadataEntry(key: String = "", value: Value = kalix.protocol.component.MetadataEntry.Value.Empty, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[MetadataEntry] with Product with Serializable
A metadata entry.
A metadata entry.
- key
Key for the entry. Valid keys are determined by the underlying transport.
- Annotations
- @SerialVersionUID()
- final case class Reply(payload: Option[Any] = _root_.scala.None, metadata: Option[Metadata] = _root_.scala.None, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[Reply] with Product with Serializable
A reply to the sender.
A reply to the sender.
- payload
The reply payload
- metadata
Metadata for the reply Not all transports support per message metadata, for example, gRPC doesn't. The Kalix proxy MAY ignore the metadata in this case, or it MAY lift the metadata into another place, for example, in gRPC, a unary call MAY have its reply metadata placed in the headers of the HTTP response, or the first reply to a streamed call MAY have its metadata placed in the headers of the HTTP response. If the metadata is ignored, the Kalix proxy MAY notify the user function by sending an error message to the Discovery.ReportError gRPC call.
- Annotations
- @SerialVersionUID()
- final case class SideEffect(serviceName: String = "", commandName: String = "", payload: Option[Any] = _root_.scala.None, synchronous: Boolean = false, metadata: Option[Metadata] = _root_.scala.None, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[SideEffect] with Product with Serializable
A side effect to be done after this command is handled.
A side effect to be done after this command is handled.
- serviceName
The name of the service to perform the side effect on.
- commandName
The name of the command.
- payload
The payload of the command.
- synchronous
Whether this side effect should be performed synchronously, ie, before the reply is eventually sent, or not.
- metadata
The metadata to include with the side effect
- Annotations
- @SerialVersionUID()
- final case class StreamCancelled(componentId: String = "", id: Long = 0L, unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[StreamCancelled] with Product with Serializable
- componentId
The ID of the component
- id
The command id
- Annotations
- @SerialVersionUID()
- final case class TraceableAny(typeUrl: String = "", value: ByteString = _root_.com.google.protobuf.ByteString.EMPTY, traceParent: String = "", unknownFields: UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty) extends GeneratedMessage with Updatable[TraceableAny] with Product with Serializable
To read/write state in the the journal as an
com.google.protobuf.Any
with a trace parent.To read/write state in the the journal as an
com.google.protobuf.Any
with a trace parent. Developed for Event Sourced Entities. To read/write state in the durable store as ancom.google.protobuf.Any
with a trace parent. Developed for Value Entities. This is an alternative to just store.protobuf.Any
. It's used when tracing is enabled so a View or an Action can retrieve the trace parent after an Entity has persisted its state in DB, This is the type one will get when exporting the data from the durable store if tracing has been previously enabled. Because it has the common fields with.protobuf.Any
https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/any.protoTraceableAny
can be deserialized also into a.protobuf.Any
out of the box.- typeUrl
same as
type_url
incom.google.protobuf.any.Any
- value
same as
value
incom.google.protobuf.any.Any
- traceParent
The id that can be picked to generate a span to link it to with a previous span.
- Annotations
- @SerialVersionUID()
Value Members
- object ClientAction extends GeneratedMessageCompanion[ClientAction]
- object ComponentProto extends GeneratedFileObject
- object Failure extends GeneratedMessageCompanion[Failure]
- object Forward extends GeneratedMessageCompanion[Forward]
- object Metadata extends GeneratedMessageCompanion[Metadata]
- object MetadataEntry extends GeneratedMessageCompanion[MetadataEntry]
- object Reply extends GeneratedMessageCompanion[Reply]
- object SideEffect extends GeneratedMessageCompanion[SideEffect]
- object StreamCancelled extends GeneratedMessageCompanion[StreamCancelled]
- object TraceableAny extends GeneratedMessageCompanion[TraceableAny]