package core
- Alphabetic
- Public
- All
Type Members
-
case class
Agent(name: String, version: String) extends Product with Serializable
Common entity for applications interacting with manifest
-
final
case class
Application(agent: Agent, instanceId: Option[String]) extends Product with Serializable
*Processing* application that added
Recordto manifest UnlikeAuthorthis can be added on behalf of other application*Processing* application that added
Recordto manifest UnlikeAuthorthis 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
-
final
case class
Author(agent: Agent, manifestVersion: String) extends Product with Serializable
Processing or operational agent that added
Recordto manifest UnlikeApplicationthis is always real appliction that added recordProcessing or operational agent that added
Recordto manifest UnlikeApplicationthis is always real appliction that added record- agent
information about version and number
- manifestVersion
version of embedded processing manifest
-
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
- 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
-
sealed
trait
ManifestError extends Throwable
ADT representing error states
-
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
-
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 ofItem- 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
-
sealed
trait
State extends Product with Serializable
Item-application state
-
sealed
trait
StateCheck extends AnyRef
Possible state of Item: either Ok to process or blocked by some
Record
Value Members
- object Agent extends Serializable
- object Application extends Serializable
- object Author extends Serializable
-
object
Common
Helper functions
- object Item extends Serializable
- object LockHandler extends Serializable
- object ManifestError extends Serializable
- object Payload
- object ProcessingManifest
- object Record extends Serializable
- object State extends Serializable
- object StateCheck