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 
InitReqwith 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