The state is periodically stored in a local file, that is read on startup
[demos/kafka/demos-kafka-payment-system-transfer] / src / main / java / de / juplo / kafka / payment / transfer / ports / TransferRepository.java
index 2423ab3..f21604d 100644 (file)
@@ -2,6 +2,7 @@ package de.juplo.kafka.payment.transfer.ports;
 
 import de.juplo.kafka.payment.transfer.domain.Transfer;
 
+import java.util.Map;
 import java.util.Optional;
 
 
@@ -11,7 +12,13 @@ public interface TransferRepository
 
   Optional<Transfer> get(Long id);
 
-  void update(Long id, Transfer.State oldState, Transfer.State newState) throws IllegalArgumentException;
-
   void remove(Long id);
+
+  long activatePartition(int partition);
+
+  void deactivatePartition(int partition, long offset);
+
+  long storedPosition(int partition);
+
+  void storeState(Map<Integer, Long> offsets);
 }