diff --git a/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualPayloadAndType.scala b/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualPayloadAndType.scala index cc1a8e100..5d572b75c 100644 --- a/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualPayloadAndType.scala +++ b/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualPayloadAndType.scala @@ -7,6 +7,20 @@ import com.evolutiongaming.kafka.journal.util.Fail import com.evolutiongaming.kafka.journal.util.Fail.implicits._ import scodec.bits.ByteVector +/** Piece of data prepared for convenient storing into Cassandra row. + * + * Usually the data is stored into the structure similar to the following: + * {{{ + * payload_type TEXT, + * payload_txt TEXT, + * payload_bin BLOB + * }}} + * Where usage of either `payload_txt` or `payload_bin` column depends on + * the contents of a `payload` field. + * + * The `payloadType` field is used to determine how the contents of `payload` + * should be treated, i.e. if it should be parsed as JSON. + */ final case class EventualPayloadAndType( payload: Either[String, ByteVector], payloadType: PayloadType diff --git a/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualRead.scala b/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualRead.scala index 3d868c16f..5dc378e0e 100644 --- a/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualRead.scala +++ b/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualRead.scala @@ -8,6 +8,11 @@ import com.evolutiongaming.kafka.journal.util.Fail.implicits._ import com.evolutiongaming.kafka.journal.{JournalError, JsonCodec, Payload, PayloadType} +/** Decode a payload loaded from an eventual storage. + * + * Converts a structure convenient to store to eventual store, i.e. Cassandra, to a structure, which is convenient to + * use for a business logic. + */ trait EventualRead[F[_], A] { def apply(payloadAndType: EventualPayloadAndType): F[A] diff --git a/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualWrite.scala b/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualWrite.scala index 21367bed3..3583bbce3 100644 --- a/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualWrite.scala +++ b/core/src/main/scala/com/evolutiongaming/kafka/journal/eventual/EventualWrite.scala @@ -6,6 +6,11 @@ import com.evolutiongaming.kafka.journal.{JournalError, JsonCodec, Payload} import scodec.bits.ByteVector +/** Prepare payload for storing. + * + * Converts a structure convenient for a business logic to a structure, which is convenient to store to eventual store, + * i.e. Cassandra. + */ trait EventualWrite[F[_], A] { def apply(payload: A): F[EventualPayloadAndType]