Struct akka_projection_rs_grpc::proto::event_producer_service_client::EventProducerServiceClient
source · pub struct EventProducerServiceClient<T> { /* private fields */ }
Expand description
EventProducerService runs on the producer side and implements the producer side of the EventsBySlices query, which can be used with Akka Projection over gRPC.
- Events are stored in the event journal on the producer side.
- Consumer side starts an Akka Projection which locally reads its offset from the Projection offset store.
- Consumer side establishes a replication stream from the producer service
by sending the
InitReq
with the offset to start from. - Events are read from the journal on the producer side and emitted to the replication stream.
- Consumer side processes the events in a Projection handler.
- Offset is stored on the consumer side by the Projection offset store.
- Producer continues to read new events from the journal and emit to the stream.
The consumer can define event filters with the FilterCriteria
, which can be included
in the InitReq
and also changed in runtime by sending FilterReq
.
Implementations§
source§impl<T> EventProducerServiceClient<T>where
T: GrpcService<BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
impl<T> EventProducerServiceClient<T>where T: GrpcService<BoxBody>, T::Error: Into<StdError>, T::ResponseBody: Body<Data = Bytes> + Send + 'static, <T::ResponseBody as Body>::Error: Into<StdError> + Send,
pub fn new(inner: T) -> Self
pub fn with_origin(inner: T, origin: Uri) -> Self
pub fn with_interceptor<F>( inner: T, interceptor: F ) -> EventProducerServiceClient<InterceptedService<T, F>>where F: Interceptor, T::ResponseBody: Default, T: Service<Request<BoxBody>, Response = Response<<T as GrpcService<BoxBody>>::ResponseBody>>, <T as Service<Request<BoxBody>>>::Error: Into<StdError> + Send + Sync,
sourcepub fn send_compressed(self, encoding: CompressionEncoding) -> Self
pub fn send_compressed(self, encoding: CompressionEncoding) -> Self
Compress requests with the given encoding.
This requires the server to support it otherwise it might respond with an error.
sourcepub fn accept_compressed(self, encoding: CompressionEncoding) -> Self
pub fn accept_compressed(self, encoding: CompressionEncoding) -> Self
Enable decompressing responses.
sourcepub fn max_decoding_message_size(self, limit: usize) -> Self
pub fn max_decoding_message_size(self, limit: usize) -> Self
Limits the maximum size of a decoded message.
Default: 4MB
sourcepub fn max_encoding_message_size(self, limit: usize) -> Self
pub fn max_encoding_message_size(self, limit: usize) -> Self
Limits the maximum size of an encoded message.
Default: usize::MAX
pub async fn events_by_slices( &mut self, request: impl IntoStreamingRequest<Message = StreamIn> ) -> Result<Response<Streaming<StreamOut>>, Status>
sourcepub async fn event_timestamp(
&mut self,
request: impl IntoRequest<EventTimestampRequest>
) -> Result<Response<EventTimestampResponse>, Status>
pub async fn event_timestamp( &mut self, request: impl IntoRequest<EventTimestampRequest> ) -> Result<Response<EventTimestampResponse>, Status>
Used in some edge cases by the offset store to retrieve the timestamp for a certain event.
sourcepub async fn load_event(
&mut self,
request: impl IntoRequest<LoadEventRequest>
) -> Result<Response<LoadEventResponse>, Status>
pub async fn load_event( &mut self, request: impl IntoRequest<LoadEventRequest> ) -> Result<Response<LoadEventResponse>, Status>
Lazy loading of a specific event.
Trait Implementations§
source§impl<T: Clone> Clone for EventProducerServiceClient<T>
impl<T: Clone> Clone for EventProducerServiceClient<T>
source§fn clone(&self) -> EventProducerServiceClient<T>
fn clone(&self) -> EventProducerServiceClient<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl<T> RefUnwindSafe for EventProducerServiceClient<T>where T: RefUnwindSafe,
impl<T> Send for EventProducerServiceClient<T>where T: Send,
impl<T> Sync for EventProducerServiceClient<T>where T: Sync,
impl<T> Unpin for EventProducerServiceClient<T>where T: Unpin,
impl<T> UnwindSafe for EventProducerServiceClient<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request