From 48e721cf5c04c98fb542b94f6610a749d0d845f9 Mon Sep 17 00:00:00 2001 From: Ruslans Tarasovs Date: Mon, 5 Feb 2024 15:11:33 +0200 Subject: [PATCH 1/2] Add a class to pass SeqNr and snapshot payload in. The main question here is if we want to have `payload` as an `Option` or require it always to be filled. This idea of `Option` was taken from a similar `Event` case class, but I am not sure it applies the same way to a snapshot. --- .../evolutiongaming/kafka/journal/Snapshot.scala | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala diff --git a/snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala b/snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala new file mode 100644 index 000000000..f3a0c10e0 --- /dev/null +++ b/snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala @@ -0,0 +1,13 @@ +package com.evolutiongaming.kafka.journal + +/** Represents a snapshot to be stored or loaded from a storage. + * + * @param seqNr + * Snapshot sequence number. + * @param payload + * Actual contents of a snapshot. The value is never `None` under normal circumstances. + */ +final case class Snapshot[A]( + seqNr: SeqNr, + payload: Option[A] +) From 4011a467e16e0945f864d5f70a6da75921fe7c57 Mon Sep 17 00:00:00 2001 From: Ruslans Tarasovs Date: Tue, 6 Feb 2024 17:18:15 +0200 Subject: [PATCH 2/2] Remove option wrapper around a payload. It was inherited from original `Event` code, but it seems that it was only needed there to ensure backwards compatibility when introducing JSON payloads and no longer necessary. See c6d0543 for more details. --- .../scala/com/evolutiongaming/kafka/journal/Snapshot.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala b/snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala index f3a0c10e0..15f9189dd 100644 --- a/snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala +++ b/snapshot/src/main/scala/com/evolutiongaming/kafka/journal/Snapshot.scala @@ -5,9 +5,9 @@ package com.evolutiongaming.kafka.journal * @param seqNr * Snapshot sequence number. * @param payload - * Actual contents of a snapshot. The value is never `None` under normal circumstances. + * Actual contents of a snapshot. */ final case class Snapshot[A]( seqNr: SeqNr, - payload: Option[A] + payload: A )