Package

jabroni.api

exchange

Permalink

package exchange

Visibility
  1. Public
  2. All

Type Members

  1. case class BlockingSubmitJobResponse(matchId: MatchId, jobId: JobId, matchEpochUTC: Long, workerCoords: List[WorkerRedirectCoords], workers: List[WorkerDetails]) extends ClientResponse with Product with Serializable

    Permalink
  2. sealed trait ClientRequest extends AnyRef

    Permalink

    A 'client' represents something which submits work to the exchange

  3. sealed trait ClientResponse extends AnyRef

    Permalink
  4. trait Exchange extends JobPublisher

    Permalink

    An exchange supports both 'client' requests (e.g.

    An exchange supports both 'client' requests (e.g. offering and cancelling work to be done) and work subscriptions

  5. trait InputDao[T] extends AnyRef

    Permalink
  6. trait JobPredicate extends AnyRef

    Permalink

    Exposes the course-grained signature of pairing up jobs with worker subscriptions

  7. trait JobPublisher extends AnyRef

    Permalink
  8. case class ListSubscriptions(subscriptionCriteria: JMatcher) extends ObserverRequest with Product with Serializable

    Permalink
  9. case class ListSubscriptionsResponse(subscriptions: List[PendingSubscription]) extends ObserverResponse with Product with Serializable

    Permalink
  10. trait MatchObserver extends OnMatch with StrictLogging

    Permalink

    Represents a match 'handler' which delegates out to other observers

  11. sealed trait ObserverRequest extends AnyRef

    Permalink
  12. sealed trait ObserverResponse extends AnyRef

    Permalink
  13. case class PendingSubscription(key: worker.SubscriptionKey, subscription: WorkSubscription, requested: Int) extends Product with Serializable

    Permalink
  14. trait QueueObserver extends AnyRef

    Permalink

    Represents something which can check the current state of the exchange queues.

    Represents something which can check the current state of the exchange queues.

    This is current kept separate from the Exchange signature so as (1) to require/expose less about a particular exchange itself (2) more practically, expose potentially separate APIs in cases such as e.g. our ui

  15. case class QueuedJobs(subscriptionMatcher: JMatcher, jobMatcher: JMatcher) extends ObserverRequest with Product with Serializable

    Permalink
  16. case class QueuedJobsResponse(jobs: List[SubmitJob]) extends ObserverResponse with Product with Serializable

    Permalink
  17. case class RequestWork(id: worker.SubscriptionKey, itemsRequested: Int) extends SubscriptionRequest with Product with Serializable

    Permalink
  18. case class RequestWorkAck(id: worker.SubscriptionKey, totalItemsPending: Int) extends SubscriptionResponse with Product with Serializable

    Permalink
  19. case class SelectIntMax(path: JPath) extends SelectionMode with Product with Serializable

    Permalink
  20. case class SelectN(n: Int, fanOut: Boolean) extends SelectionMode with Product with Serializable

    Permalink
  21. case class SelectionAll() extends SelectionMode with Product with Serializable

    Permalink
  22. case class SelectionFirst() extends SelectionMode with Product with Serializable

    Permalink
  23. abstract class SelectionMode extends AnyRef

    Permalink
  24. case class SubmissionDetails(aboutMe: Json, selection: SelectionMode, workMatcher: JMatcher, awaitMatch: Boolean) extends JsonAppendable with Product with Serializable

    Permalink

    Contains instructions/information specific to the job scheduling/matching

  25. case class SubmitJob(submissionDetails: SubmissionDetails, job: Json) extends ClientRequest with Product with Serializable

    Permalink

    Represents anything which can be run as a job

    Represents anything which can be run as a job

    Json is a bit prescriptive, but that's going to cover 95% of the cases. Even if we have binary data, we can base64 encode it as an option.

    If we end up doing a lot of data transfer, then we can change the job representation to be an akka Source

    job

    represents the job submission. As the job repo is heterogeneous, it could match anything really that's asking for work

  26. case class SubmitJobResponse(id: JobId) extends ClientResponse with Product with Serializable

    Permalink
  27. sealed trait SubscriptionRequest extends AnyRef

    Permalink
  28. sealed trait SubscriptionResponse extends AnyRef

    Permalink
  29. case class WorkSubscription(details: WorkerDetails = WorkerDetails(), jobMatcher: JMatcher = JMatcher.matchAll, submissionMatcher: JMatcher = JMatcher.matchAll) extends SubscriptionRequest with Product with Serializable

    Permalink

    The details contain info about the worker subscribing to work, such as it's location (where work should be sent to), and any arbitrary json data it wants to expose (nr of CPUs, runAs user, available memory, OS, a 'topic', etc)

    The details contain info about the worker subscribing to work, such as it's location (where work should be sent to), and any arbitrary json data it wants to expose (nr of CPUs, runAs user, available memory, OS, a 'topic', etc)

    Once a WorkSubscription is sent

    jobMatcher

    the json matcher used against the 'job' portion of SubmitJob

    submissionMatcher

    the json matcher used against the additional 'details' part of SubmitJob

  30. case class WorkSubscriptionAck(id: worker.SubscriptionKey) extends SubscriptionResponse with Product with Serializable

    Permalink

Value Members

  1. object BlockingSubmitJobResponse extends Serializable

    Permalink
  2. object Exchange

    Permalink
  3. object InputDao

    Permalink
  4. object JobPredicate extends StrictLogging

    Permalink
  5. object ListSubscriptions extends Serializable

    Permalink
  6. object ListSubscriptionsResponse extends Serializable

    Permalink
  7. object MatchObserver

    Permalink
  8. object QueuedJobs extends Serializable

    Permalink
  9. object QueuedJobsResponse extends Serializable

    Permalink
  10. object RequestWork extends Serializable

    Permalink
  11. object RequestWorkAck extends Serializable

    Permalink
  12. object SelectionMode

    Permalink
  13. object SubmissionDetails extends Serializable

    Permalink
  14. object SubmitJob extends Serializable

    Permalink
  15. object SubmitJobResponse extends Serializable

    Permalink
  16. object WorkSubscription extends Serializable

    Permalink
  17. object WorkSubscriptionAck extends Serializable

    Permalink

Ungrouped