Explainers

Stripe Webhook Event Ordering: Retries and Duplicates
Handle Stripe webhook ordering, retries and duplicates with a short endpoint, durable queue and layered idempotency.

Bitcoin Address Types: Legacy, SegWit and Taproot
How legacy, nested SegWit, native SegWit and Taproot Bitcoin addresses differ—and what their prefixes cannot prove.

Temperature vs top_p: Which Sampling Control to Change
Temperature reshapes token probabilities; top_p cuts the cumulative tail. Change one control at a time.

package-lock.json vs npm-shrinkwrap.json
Choose the right npm lockfile for an app, library or published package, and know what npm ci enforces.

Bitcoin Fee Estimation: Fee Rate, vBytes and Targets
Turn a confirmation target and virtual size into a fee-rate estimate without treating it as a guarantee.

Stripe PaymentIntent vs SetupIntent: Which Object to Use
Use PaymentIntent to charge now, SetupIntent to save for later, or setup_future_usage to do both.

Retry-After for 429 and 503: Build a Safer Client
Parse Retry-After correctly, then combine it with deadlines, jitter, attempt caps and idempotency checks.

Stripe Payment Links vs Checkout Sessions: Where the Flow Starts
Choose a reusable Stripe Payment Link or a server-created Checkout Session by tracing where order context begins.

Bitcoin PSBT: How Signing, Combining and Finalizing Work
Follow a Bitcoin PSBT from unsigned proposal through offline signing, combination, finalization and broadcast.

Structured Outputs vs JSON Mode: What the Schema Changes
Choose Structured Outputs or JSON mode by whether valid JSON is enough or every field must follow a schema.

Cache-Control: no-cache vs no-store vs private
Choose no-cache, no-store or private by what may be stored, reused and shared—not by the directive's name.

HTTP Content Negotiation: Accept, Content-Type and Vary
Use Accept, Content-Type and Vary correctly so APIs select representations without breaking shared caches.

Stripe Webhook Signature Verification: Check the Raw Request
Verify Stripe webhooks with the raw body, signature header, endpoint secret, timestamp checks and duplicate controls.

Cursor vs Offset Pagination: What Changes Under Inserts
Compare cursor and offset pagination when records move, repeat or change during a long API traversal.

USB-C DisplayPort Alt Mode: What the Port Supports
USB-C can carry DisplayPort video, but the port, cable and dock must support the same path.

DPoP vs Bearer Tokens: What Proof of Possession Changes
How DPoP binds OAuth tokens to a client key, what replay checks add and which risks still remain.

Stripe Refund Status: Track Changes and Trace the Result
Track the exact refund, read later changes and distinguish a reversal from a missing bank credit.

Claude API Streaming Usage: Count Tokens Once
Record cumulative token counters once, preserve interrupted attempts and separate completion from acceptance.

ETag vs Last-Modified: Choosing an HTTP Validator
Choose the right HTTP validator for caching, conditional requests and safe concurrent updates.

Semantic Versioning vs Calendar Versioning
SemVer signals API compatibility; CalVer signals release timing. Choose the contract your users need.

TLS 1.3 0-RTT: Why Early API Requests Can Replay
Early TLS requests save waiting, but encryption alone cannot prevent a repeated API action.

Bluetooth LE Audio vs Classic Audio: What Actually Changes
LE Audio changes the radio, codec and profiles. Check what both devices support before buying.

Watch-Only Wallets: Track Bitcoin Without Private Keys
A watch-only wallet tracks Bitcoin activity without holding the private keys needed to spend.

OAuth vs API Keys: Choosing an API Authentication Method
OAuth and API keys identify different actors. Here is how to choose by principal, scope, lifetime and revocation.
