11package io .numaproj .numaflow .sinker ;
22
3+ import io .numaproj .numaflow .shared .NackOptions ;
34import lombok .AccessLevel ;
45import lombok .AllArgsConstructor ;
56import lombok .Getter ;
@@ -20,6 +21,8 @@ public class Response {
2021 private final byte [] serveResponse ;
2122 private final Boolean onSuccess ;
2223 private final Message onSuccessMessage ;
24+ private final Boolean nack ;
25+ private final NackOptions nackOptions ;
2326
2427 /**
2528 * Static method to create response for successful message processing.
@@ -28,7 +31,7 @@ public class Response {
2831 * @return Response object with success status
2932 */
3033 public static Response responseOK (String id ) {
31- return new Response (id , true , null , false , false , null , false , null );
34+ return new Response (id , true , null , false , false , null , false , null , false , null );
3235 }
3336
3437 /**
@@ -39,7 +42,7 @@ public static Response responseOK(String id) {
3942 * @return Response object with failure status and error message
4043 */
4144 public static Response responseFailure (String id , String errMsg ) {
42- return new Response (id , false , errMsg , false , false , null , false , null );
45+ return new Response (id , false , errMsg , false , false , null , false , null , false , null );
4346 }
4447
4548 /**
@@ -50,7 +53,7 @@ public static Response responseFailure(String id, String errMsg) {
5053 * @return Response object with fallback status
5154 */
5255 public static Response responseFallback (String id ) {
53- return new Response (id , false , null , true , false , null , false , null );
56+ return new Response (id , false , null , true , false , null , false , null , false , null );
5457 }
5558
5659 /**
@@ -63,7 +66,7 @@ public static Response responseFallback(String id) {
6366 * @return Response object with serve status and serve response
6467 */
6568 public static Response responseServe (String id , byte [] serveResponse ) {
66- return new Response (id , false , null , false , true , serveResponse , false , null );
69+ return new Response (id , false , null , false , true , serveResponse , false , null , false , null );
6770 }
6871
6972 /**
@@ -76,6 +79,18 @@ public static Response responseServe(String id, byte[] serveResponse) {
7679 * @return Response object with onSuccess status and onSuccess message
7780 */
7881 public static Response responseOnSuccess (String id , Message onSuccessMessage ) {
79- return new Response (id , false , null , false , false , null , true , onSuccessMessage );
82+ return new Response (id , false , null , false , false , null , true , onSuccessMessage , false , null );
83+ }
84+
85+ /**
86+ * Static method to create a nack response, indicating the message should be negatively
87+ * acknowledged and redelivered. nackOptions may be null.
88+ *
89+ * @param id id of the message
90+ * @param nackOptions optional redelivery options
91+ * @return Response object with nack status
92+ */
93+ public static Response responseNack (String id , NackOptions nackOptions ) {
94+ return new Response (id , false , null , false , false , null , false , null , true , nackOptions );
8095 }
8196}
0 commit comments