diff --git a/core/src/main/scala/com/evolutiongaming/kafka/journal/PayloadAndType.scala b/journal/src/main/scala/com/evolutiongaming/kafka/journal/PayloadAndType.scala similarity index 76% rename from core/src/main/scala/com/evolutiongaming/kafka/journal/PayloadAndType.scala rename to journal/src/main/scala/com/evolutiongaming/kafka/journal/PayloadAndType.scala index 03f026818..bef58dc1b 100644 --- a/core/src/main/scala/com/evolutiongaming/kafka/journal/PayloadAndType.scala +++ b/journal/src/main/scala/com/evolutiongaming/kafka/journal/PayloadAndType.scala @@ -12,6 +12,18 @@ import scodec.bits.ByteVector import scala.util.Try +/** Piece of data prepared for convenient storing into Kafka record. + * + * The usual practice is that [[PayloadAndType#payload]] will be used as a + * value for a Kafka record, and [[PayloadAndType#payloadType]] will get into a + * header. + * + * @param payload + * Used to store actual payload, i.e. one or several journal events. + * @param payloadType + * Used to determine how the contents of `payload` should be treated, i.e. if + * it should be parsed as JSON. + */ final case class PayloadAndType( payload: ByteVector, payloadType: PayloadType.BinaryOrJson) diff --git a/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaRead.scala b/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaRead.scala index f6dc446a6..7f8252ee7 100644 --- a/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaRead.scala +++ b/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaRead.scala @@ -8,6 +8,11 @@ import com.evolutiongaming.kafka.journal._ import com.evolutiongaming.kafka.journal.util.Fail import play.api.libs.json.JsValue +/** Decode a payload loaded from Kafka. + * + * Converts a structure convenient to store in Kafka, to a structure, which is + * convenient to use for a business logic. + */ trait KafkaRead[F[_], A] { def apply(payloadAndType: PayloadAndType): F[Events[A]] diff --git a/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaWrite.scala b/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaWrite.scala index 744216567..05072de8a 100644 --- a/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaWrite.scala +++ b/journal/src/main/scala/com/evolutiongaming/kafka/journal/conversions/KafkaWrite.scala @@ -10,6 +10,11 @@ import play.api.libs.json.{JsValue, Json, Writes} import scala.annotation.tailrec +/** Prepare payload for storing into Kafka. + * + * Converts a structure convenient for a business logic to a structure, which + * is convenient to store into Kafka. + */ trait KafkaWrite[F[_], A] { def apply(events: Events[A]): F[PayloadAndType]