
io.numaproj.numaflow.sideinput.Service Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of numaflow-java Show documentation
Show all versions of numaflow-java Show documentation
SDK to implement Numaflow Source or User Defined Functions or Sinks in Java.
The newest version!
package io.numaproj.numaflow.sideinput;
import com.google.protobuf.ByteString;
import com.google.protobuf.Empty;
import io.grpc.stub.StreamObserver;
import io.numaproj.numaflow.sideinput.v1.SideInputGrpc;
import io.numaproj.numaflow.sideinput.v1.Sideinput;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@AllArgsConstructor
class Service extends SideInputGrpc.SideInputImplBase {
private final SideInputRetriever sideInputRetriever;
/**
* Invokes the side input retriever to retrieve side input.
*/
@Override
public void retrieveSideInput(
Empty request,
StreamObserver responseObserver) {
if (this.sideInputRetriever == null) {
io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(
SideInputGrpc.getRetrieveSideInputMethod(),
responseObserver);
return;
}
// process request
Message message = sideInputRetriever.retrieveSideInput();
// set response
responseObserver.onNext(buildResponse(message));
responseObserver.onCompleted();
}
/**
* IsReady is the heartbeat endpoint for gRPC.
*/
@Override
public void isReady(Empty request, StreamObserver responseObserver) {
responseObserver.onNext(Sideinput.ReadyResponse.newBuilder().setReady(true).build());
responseObserver.onCompleted();
}
private Sideinput.SideInputResponse buildResponse(Message message) {
return Sideinput.SideInputResponse.newBuilder()
.setValue(message.getValue() == null ? ByteString.EMPTY : ByteString.copyFrom(
message.getValue()))
.setNoBroadcast(message.isNoBroadcast())
.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy