<?php

declare(strict_types=1);

namespace Apexl\Io\Jobs\Interfaces;

/**
 * Marks a handler whose jobs must apply in the order they were queued.
 *
 * The queue itself has no opinion about order — this says that jobs of this handler carry
 * ordered changes to the same records, so one of them failing has to hold the rest back
 * rather than let them overtake it. A handler enforces that itself (typically through
 * {@see SkippableTaskHandlerInterface}); what this interface adds is the ability for
 * anything *outside* the run to tell the two kinds of waiting apart.
 *
 * That distinction is the whole reason it exists. A deferred job of a sequenced handler is
 * waiting on somebody else's failure and has an attempt count inflated by blocking that
 * means nothing; a deferred job of an ordinary handler is backing off from its own, and
 * clearing that count would loop it forever. `jobs:queue` reads this to know which backlog
 * it may bring forward once the failures are cleared.
 */
interface SequencedTaskHandlerInterface
{
}
