Packages

package core

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. case class Agent(name: String, version: String) extends Product with Serializable

    Common entity for applications interacting with manifest

  2. final case class Application(agent: Agent, instanceId: Option[String]) extends Product with Serializable

    *Processing* application that added Record to manifest Unlike Author this can be added on behalf of other application

    *Processing* application that added Record to manifest Unlike Author this can be added on behalf of other application

    agent

    information about version and number

    instanceId

    optional app's arguments such as storage target id, allows two identical applications process same Item. Absent instance id is equal to wildcard

  3. final case class Author(agent: Agent, manifestVersion: String) extends Product with Serializable

    Processing or operational agent that added Record to manifest Unlike Application this is always real appliction that added record

    Processing or operational agent that added Record to manifest Unlike Application this is always real appliction that added record

    agent

    information about version and number

    manifestVersion

    version of embedded processing manifest

  4. final case class Item extends Product with Serializable

    Unit of manifest consisting of multiple records related to single run id Used to fold individual records and extract final app-specific item state

  5. case class LockHandler[F[_]](acquire: (Application, Item, Option[Payload]) ⇒ F[(UUID, Instant)], release: PutFunction[F, Option[Payload]], fail: PutFunction[F, Throwable]) extends Product with Serializable
  6. sealed trait ManifestError extends Throwable

    ADT representing error states

  7. abstract class ProcessingManifest[F[_]] extends AnyRef

    Base trait for processing manifest functionality

    Base trait for processing manifest functionality

    F

    effect producing by interaction with manifest

  8. final case class Record(itemId: ItemId, application: Application, recordId: UUID, previousRecordId: Option[UUID], state: State, timestamp: Instant, author: Author, payload: Option[Payload]) extends Product with Serializable

    Atomic unit of Item.

    Atomic unit of Item. Usually represented as immutable row in a DB table (manifest) Each record represents some state change of Item

    itemId

    string, uniquely identifying set of events (Item) e.g. FS path

    application

    application saved this Record

    recordId

    record uniq id

    previousRecordId

    "parent" record, being consumed but this record, e.g. parent - PROCESSING, this - FAILED

    timestamp

    application's **wallclock** timestamp. Note that this can be arbitrary, nothing guarantees its correctness

    author

    application that **actually** added the record (imposter)

    payload

    application's payload that can be used by subsequent applications/states

  9. sealed trait State extends Product with Serializable

    Item-application state

  10. sealed trait StateCheck extends AnyRef

    Possible state of Item: either Ok to process or blocked by some Record

Value Members

  1. object Agent extends Serializable
  2. object Application extends Serializable
  3. object Author extends Serializable
  4. object Common

    Helper functions

  5. object Item extends Serializable
  6. object LockHandler extends Serializable
  7. object ManifestError extends Serializable
  8. object Payload
  9. object ProcessingManifest
  10. object Record extends Serializable
  11. object State extends Serializable
  12. object StateCheck

Ungrouped