Postbox
Postbox is the storage mechanism for requests that are to be processed asynchronously.
Inheritors
Types
Link copied to clipboard
data class PendingRequest(val requestId: RequestId, val request: Request, val processingTime: Instant, val failures: Int)
Functions
Link copied to clipboard
Atomically claim a batch of due requests for processing, marking them as RequestProcessingStatus.Processing until either they are finalised via markProcessed, markFailed or markDead, or until the given lease expires (after which they can be reclaimed by a subsequent call).
Link copied to clipboard
abstract fun markFailed(requestId: RequestId, delayReprocessing: Duration, response: Response?): Result<Unit, PostboxError>
Mark a request as failed with the given delay for reprocessing and an optional response.
Link copied to clipboard
Mark a request as processed with the given response.
Link copied to clipboard
Retrieve all pending requests. Those are the ones that have not been claimed for processing, marked as processed or marked as dead yet.
Link copied to clipboard
Retrieve the status of a request.
Link copied to clipboard
abstract fun store(requestId: RequestId, request: Request): Result<RequestProcessingStatus, PostboxError>
Store a request in the Postbox for later processing.