TTL Lock Expired: How a Fencing Token Stops an Old Worker
On a safe model, we show why lease expiration does not stop an old process and how a monotonic fencing token prevents it from overwriting the new owner's result.
Аккаунт в General iT
Войдите или создайте аккаунт для управления услугами в личном кабинете.
Страны не найдены. Попробуйте другое название или код.

One point for every published article.

On a safe model, we show why lease expiration does not stop an old process and how a monotonic fencing token prevents it from overwriting the new owner's result.


Check every element of the batch response: detect missing results, avoid resubmitting successful SKUs, and safely resume only temporarily failed operations.


Practical guide to circuit breaker: three technical failures trip the breaker, requests stop reaching the external API, a failed probe extends the pause, and a successful one restores normal operation.


We analyze a replay attack on a correctly signed webhook: signing the timestamp and nonce, verifying the time window, and showing why worker local memory loses protection after a restart.


On a deterministic model, we compare local and shared token buckets: two workers receive four 429 responses with local limits, while a single shared limiter distributes eight requests without exceeding the limit.


On the tested model, we compare the change in product quantity against a record of its absolute value. A single operation_id prevents the same command from being applied twice, while version checking rejects stale snapshots after new product movements.


On October 28, WordPress released 7.1.4 with security fixes. We examine the affected branches, the safe update sequence, and acceptance criteria for sites, stores, and integrations.


On an isolated SQLite model, we check the retry limit, move persistent errors to a dead-letter queue, handle rollback on failure between insert and delete, and perform a single return of the corrected message.


We examine the transactional outbox using a safe model: the order and outgoing event are recorded in a single transaction; failures before and after sending do not lose the event, and retries use a stable event_id.


We examine single-flight for OAuth: one request updates the access and refresh tokens, others wait for the result, and a token endpoint error does not corrupt the saved pair.


Practical guide: accept K1 and K2 only within a limited window, bind the signature to key_id and timestamp, verify HMAC via compare_digest, and disable the old key based on seven test results.


Practical guide to RFC 6902: place a test before replace, reproduce fresh and stale prices, verify atomic failure and JSON type differences on CPython 3.12.

Public pages use basic statistics. Our recording and Yandex Webvisor require your permission. You can keep basic statistics or disable all analytics.
Operator: General IT Rus LLC, INN 2310208877. Statistics and recording help improve the website. Basic statistics: pageviews, a random daily ID, a public URL and time. The ID lasts until Moscow midnight. Original records: up to 48 hours; totals: up to 7 years. Campaign tags and a technical identifier are sent by our server to the existing Yandex tag. Visitor IP, User-Agent and cookies are not included in this transfer. If selected, its browser code collects technical data, cookies, actions and masked page snapshots; recordings last 15 days. Inputs, chat and account areas are hidden. Interaction recording requires permission: clicks, scrolling, technical information and filtered public-page snapshots. Events: up to 7 years; IP and snapshots: up to 90 days. Permission is remembered for up to 365 days; full opt-out remains until changed. Basic statistics only disables recording; Disable all analytics stops new analytics. Previously sent data is not automatically deleted. Withdrawal and requests: support@git.ru. Full terms are linked below.
Your browser requests no tracking: analytics is off.