This week in caching: full-page cache vs personalization — the real tradeoffs
When 'cache the whole page' meets 'but the header shows the username':
— Cache + ESI/fragment holes: cache the page, punch out dynamic blocks via Edge Side Includes or AJAX. Best when 95% is shared and only a sliver is per-user.
— Vary-by-cookie: cache separate copies per segment. Fine for 2-3 audiences (guest/member/admin); cache-explosion disaster if you Vary on a unique session ID.
— Cookie stripping at the edge: drop tracking/analytics cookies before the cache key so anonymous users actually share a cache entry — the single biggest hit-rate fix on most sites.
The failure mode everyone hits: not normalizing cookies, so every visitor gets a unique cache key and your hit rate sits near zero while you wonder why caching 'does nothing'.
Bookmark: Fastly's ESI vs edge-personalization guide.
When 'cache the whole page' meets 'but the header shows the username':
— Cache + ESI/fragment holes: cache the page, punch out dynamic blocks via Edge Side Includes or AJAX. Best when 95% is shared and only a sliver is per-user.
— Vary-by-cookie: cache separate copies per segment. Fine for 2-3 audiences (guest/member/admin); cache-explosion disaster if you Vary on a unique session ID.
— Cookie stripping at the edge: drop tracking/analytics cookies before the cache key so anonymous users actually share a cache entry — the single biggest hit-rate fix on most sites.
The failure mode everyone hits: not normalizing cookies, so every visitor gets a unique cache key and your hit rate sits near zero while you wonder why caching 'does nothing'.
Bookmark: Fastly's ESI vs edge-personalization guide.
Forwarded from high profit — low life
⚡️ AffPapa теперь официально принадлежит Иванову
Евгений Юрьич продолжает издеваться над опозорившимся этим летом AffPapa. Вслед за базой контактов к маэстро ушел еще и товарный знак конторы...
Как проверить:
1. Перейти по ссылке
2. Ввести 2026793242
3. Ахуеть от беспомощности AffPapa
Такие сегодня новости, такая life...
High Profit — Low Life | Прислать сплетню
Евгений Юрьич продолжает издеваться над опозорившимся этим летом AffPapa. Вслед за базой контактов к маэстро ушел еще и товарный знак конторы...
Как проверить:
1. Перейти по ссылке
2. Ввести 2026793242
3. Ахуеть от беспомощности AffPapa
Такие сегодня новости, такая life...
High Profit — Low Life | Прислать сплетню
Forwarded from В арбитраже денег нет?
ЕЮ Иванов продолжает кошмарить АффПапу, конторку, которая накинула говна на вентилятор этим летом. Тогда в AffPapa не знали, с каким говном идут бодаться, поэтому заслуженно проиграли. 😏
На этот раз ЕЮ зарегал товарный знак AffPapa — совсем скоро имя компании будет официально принадлежать ему. Чтобы убедиться в трушности мува, переходим по ссыл-Очке и вводим серийный номер: 2026793242. Там видим, что заявка на регистрацию подана лично Евгением Юрьичем.
Всё это выглядит забавно, но давайте не забывать, в какой сфере мы работаем и что реально может произойти с жирным троллем за воровство нейминга. Впрочем, толстому не привыкать отхватывать пиздов за проделки в интернете, поэтому ждем очередную фотку разбитого ебала и длинный пост с извинениями. 😏😏😏
В арбитраже денег нет 💵
На этот раз ЕЮ зарегал товарный знак AffPapa — совсем скоро имя компании будет официально принадлежать ему. Чтобы убедиться в трушности мува, переходим по ссыл-Очке и вводим серийный номер: 2026793242. Там видим, что заявка на регистрацию подана лично Евгением Юрьичем.
Всё это выглядит забавно, но давайте не забывать, в какой сфере мы работаем и что реально может произойти с жирным троллем за воровство нейминга. Впрочем, толстому не привыкать отхватывать пиздов за проделки в интернете, поэтому ждем очередную фотку разбитого ебала и длинный пост с извинениями. 😏😏😏
В арбитраже денег нет 💵
This week in caching: cache-aside vs write-through
Two object-caching patterns, different consistency stories:
— Cache-aside (lazy): app checks cache, on miss reads DB and populates. Simple, resilient — cache down just means slower, not broken. Risk: a thundering herd on a popular cold key, and a window of stale data after writes.
— Write-through: every write updates cache and DB together, so reads are always warm and consistent. Cost: write latency, and you cache data nobody may ever read.
— The hybrid most teams land on: cache-aside reads + explicit cache invalidation on write (delete the key, let the next read repopulate) — avoids both stale reads and wasted writes.
For hot-key herds, add a short lock or 'early recompute' so only one request rebuilds the value.
Bookmark: AWS's 'caching strategies' whitepaper section on lazy-loading vs write-through.
Two object-caching patterns, different consistency stories:
— Cache-aside (lazy): app checks cache, on miss reads DB and populates. Simple, resilient — cache down just means slower, not broken. Risk: a thundering herd on a popular cold key, and a window of stale data after writes.
— Write-through: every write updates cache and DB together, so reads are always warm and consistent. Cost: write latency, and you cache data nobody may ever read.
— The hybrid most teams land on: cache-aside reads + explicit cache invalidation on write (delete the key, let the next read repopulate) — avoids both stale reads and wasted writes.
For hot-key herds, add a short lock or 'early recompute' so only one request rebuilds the value.
Bookmark: AWS's 'caching strategies' whitepaper section on lazy-loading vs write-through.
This week in caching: Redis RDB vs AOF when it's more than a cache
Matters the moment Redis holds sessions or rate-limit counters you can't lose:
— RDB snapshots: point-in-time dumps, tiny files, fast restart, low overhead. You can lose the last few minutes of writes on a crash — totally fine for a pure cache.
— AOF: logs every write, near-zero data loss with
— The pragmatic answer: pure ephemeral cache → RDB only (or persistence off entirely, more RAM for data). Redis doubling as a session/queue store → AOF, or both for belt-and-suspenders.
Don't pay AOF's write cost for data you'd happily rebuild from the DB — that's the most common over-engineering here.
Bookmark: the Redis persistence docs — the RDB-vs-AOF tradeoff table is genuinely well written.
Matters the moment Redis holds sessions or rate-limit counters you can't lose:
— RDB snapshots: point-in-time dumps, tiny files, fast restart, low overhead. You can lose the last few minutes of writes on a crash — totally fine for a pure cache.
— AOF: logs every write, near-zero data loss with
fsync everysec, but bigger files and slower restarts as it replays the log.— The pragmatic answer: pure ephemeral cache → RDB only (or persistence off entirely, more RAM for data). Redis doubling as a session/queue store → AOF, or both for belt-and-suspenders.
Don't pay AOF's write cost for data you'd happily rebuild from the DB — that's the most common over-engineering here.
Bookmark: the Redis persistence docs — the RDB-vs-AOF tradeoff table is genuinely well written.
This week in caching: push CDN vs pull CDN
Older distinction, still decides your origin load:
— Pull (origin-pull): CDN fetches from your origin on first miss, caches, serves. Zero upload step, content auto-updates when origin does. The default for 95% of sites.
— Push: you upload assets to the CDN ahead of time; origin is never hit. Worth it for huge files (video, large downloads) where even one origin pull is expensive, or origins that can't take traffic spikes.
— The pull gotcha: a viral cold object triggers many simultaneous origin fetches before the cache fills — 'origin shielding' (a mid-tier cache) collapses that into one fetch. Turn it on if your CDN offers it.
Most people never need push; they need shielding turned on and a sane default TTL.
Bookmark: Cloudflare's 'origin shielding / Tiered Cache' docs — the fix for pull-CDN miss storms.
Older distinction, still decides your origin load:
— Pull (origin-pull): CDN fetches from your origin on first miss, caches, serves. Zero upload step, content auto-updates when origin does. The default for 95% of sites.
— Push: you upload assets to the CDN ahead of time; origin is never hit. Worth it for huge files (video, large downloads) where even one origin pull is expensive, or origins that can't take traffic spikes.
— The pull gotcha: a viral cold object triggers many simultaneous origin fetches before the cache fills — 'origin shielding' (a mid-tier cache) collapses that into one fetch. Turn it on if your CDN offers it.
Most people never need push; they need shielding turned on and a sane default TTL.
Bookmark: Cloudflare's 'origin shielding / Tiered Cache' docs — the fix for pull-CDN miss storms.
Forwarded from Natalia
ВПЕРВЫЕ! ТОЛЬКО ОДИН ВЕЧЕР!
🫥 ПИАР-ВОЙС В ЭТОМ ЧАТЕ🫥
Участников никто не знает.
Откуда они? Хуй его знает.
Темы — просто пиздец!
• Аналитика на двух лидах
• Слив анлим бюджетов
• Как просрать медийку
• Где найти нормальную работу
• Как закупиться себе в карман
⚡ Все это для тех, кто придет на ВОЙС
На котором обсудим:
Модераторы: @adv_god @natnetak
NO RESPECT CHAT • 27.08 • 19:00 GMT+3
Участников никто не знает.
Откуда они? Хуй его знает.
Темы — просто пиздец!
• Аналитика на двух лидах
• Слив анлим бюджетов
• Как просрать медийку
• Где найти нормальную работу
• Как закупиться себе в карман
Как делать PR, маркетинг и деньги в арбитраже трафика
На котором обсудим:
• На что компании еще готовы тратить деньги
• За чье внимание мы вообще конкурируем
• Что действительно работает, а что сливает бабки
• PR vs маркетинг
• Как измерить результаты кампейнов
• Что делать с запросом «хочу, чтобы про нас все знали»
Модераторы: @adv_god @natnetak
NO RESPECT CHAT • 27.08 • 19:00 GMT+3
Please open Telegram to view this post
VIEW IN TELEGRAM
This week in caching: hard purge vs soft purge
A distinction that decides whether a purge causes a traffic spike on your origin:
— Hard purge: the object is deleted from cache instantly. Next request is a guaranteed miss → origin fetch. Purge a popular URL during peak and you've just shipped a mini load test to your backend.
— Soft purge: the object is marked stale, not removed. Next request serves it stale-while-revalidate and refreshes in the background — no latency cliff, no origin stampede.
— When you still want hard: legal/PII takedowns, or anything where serving stale even for a second is unacceptable.
Default to soft purge for content updates; reserve hard purge for 'this must vanish now'.
Bookmark: Fastly's soft-purge documentation — the canonical writeup of why stale-marking beats deletion for routine invalidation.
A distinction that decides whether a purge causes a traffic spike on your origin:
— Hard purge: the object is deleted from cache instantly. Next request is a guaranteed miss → origin fetch. Purge a popular URL during peak and you've just shipped a mini load test to your backend.
— Soft purge: the object is marked stale, not removed. Next request serves it stale-while-revalidate and refreshes in the background — no latency cliff, no origin stampede.
— When you still want hard: legal/PII takedowns, or anything where serving stale even for a second is unacceptable.
Default to soft purge for content updates; reserve hard purge for 'this must vanish now'.
Bookmark: Fastly's soft-purge documentation — the canonical writeup of why stale-marking beats deletion for routine invalidation.
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Иногда мне кажется, что я работаю не в iGaming, а в похоронном бюро.
Каждый день кто-то приносит очередной продукт и говорит: «У нас почему-то падает LTV.»
Потом открываешь аналитику и понимаешь, что игроки предупреждали об этом ещё месяц назад.
Просто никто не слушал.
Я — Head of Retention. И в своём канале разбираю ошибки, из-за которых команды месяцами теряют LTV, даже не замечая этого.
Каждый день кто-то приносит очередной продукт и говорит: «У нас почему-то падает LTV.»
Потом открываешь аналитику и понимаешь, что игроки предупреждали об этом ещё месяц назад.
Просто никто не слушал.
Я — Head of Retention. И в своём канале разбираю ошибки, из-за которых команды месяцами теряют LTV, даже не замечая этого.
This week in caching: OPcache revalidate_freq vs full reset on deploy
How you ship PHP changes without serving half-old bytecode:
—
—
— The atomic-deploy partner: symlink-swap release dirs, then reset — so the cache flips to fully-new code in one step, never a half-state.
If you're on
Bookmark: the PHP
How you ship PHP changes without serving half-old bytecode:
—
validate_timestamps=1 + revalidate_freq=2: OPcache re-checks file mtimes every 2s. Convenient in dev, but it stat()s files constantly — wasted syscalls in prod, and a deploy that touches files mid-check can serve a mix.—
validate_timestamps=0 + explicit reset: prod gold. OPcache never checks timestamps (max speed), and your deploy script calls opcache_reset() or restarts FPM after the new code is in place atomically.— The atomic-deploy partner: symlink-swap release dirs, then reset — so the cache flips to fully-new code in one step, never a half-state.
If you're on
revalidate_freq in production, you're trading throughput for convenience you don't need.Bookmark: the PHP
opcache.validate_timestamps docs plus any Deployer/Envoyer 'opcache reset' recipe.A few channels in the webmaster & site monetization space worth your feed:
— @RPMReceipts — Real monetization numbers from real sites: RPM, EPMV, fill rate and…
— @AdSenseTrenches — Field notes from running real AdSense accounts: placement tweaks that…
— @NetworkMythHQ — We pressure-test what Ezoic, Mediavine and Raptive actually pay…
— @BidStack101 — Header bidding explained without the AdTech jargon: what Prebid,…
Each runs its own angle. Worth a scroll.
— @RPMReceipts — Real monetization numbers from real sites: RPM, EPMV, fill rate and…
— @AdSenseTrenches — Field notes from running real AdSense accounts: placement tweaks that…
— @NetworkMythHQ — We pressure-test what Ezoic, Mediavine and Raptive actually pay…
— @BidStack101 — Header bidding explained without the AdTech jargon: what Prebid,…
Each runs its own angle. Worth a scroll.
Forwarded from AFF.TOP - про арбитраж трафика и CPA рынок!
This media is not supported in your browser
VIEW IN TELEGRAM
В роликах Youtube теперь можно рекламировать товары Amazone
➡️ Читайте на сайте: https://aff.top/blog/v-rolikakh-youtube-teper-mozhno-reklamirovat-tovary-amazone
🧠 Ещё больше инсайтов → в канале AFF.top
➡️ Читайте на сайте: https://aff.top/blog/v-rolikakh-youtube-teper-mozhno-reklamirovat-tovary-amazone
🧠 Ещё больше инсайтов → в канале AFF.top
This week in caching: WP transients vs a persistent object cache
A WordPress-specific comparison that quietly decides your DB load:
— Transients without a persistent object cache store in the
— Drop in Redis/Memcached as a persistent object cache and transients (plus all of WP's internal
— The order people get wrong: they add a page-cache plugin and skip object cache, so logged-in users (who bypass page cache) still hammer MySQL.
For any membership/WooCommerce site where logged-in traffic matters, persistent object cache beats page cache for the users that count.
Bookmark: the Redis Object Cache plugin readme + WP's Transients API docs, read side by side.
A WordPress-specific comparison that quietly decides your DB load:
— Transients without a persistent object cache store in the
wp_options table — so your 'cache' is extra DB rows, and autoloaded options bloat every page load. The opposite of fast.— Drop in Redis/Memcached as a persistent object cache and transients (plus all of WP's internal
wp_cache_* calls) move to RAM — that's the actual win, not the page cache.— The order people get wrong: they add a page-cache plugin and skip object cache, so logged-in users (who bypass page cache) still hammer MySQL.
For any membership/WooCommerce site where logged-in traffic matters, persistent object cache beats page cache for the users that count.
Bookmark: the Redis Object Cache plugin readme + WP's Transients API docs, read side by side.
Forwarded from AFF.TOP - про арбитраж трафика и CPA рынок!
This media is not supported in your browser
VIEW IN TELEGRAM
Google выпустил Gemini Omni 1.1 Flash
Google обновил Gemini Omni для генерации видео: модель умеет продолжать сцены с учётом до 10 секунд контекста и собирать ролик до 40 секунд, работать по референсу и делать переходы между кадрами. Главный вывод — инструмент стал практичнее для продакшена, а посекундная цена делает его заметно доступнее для тестов и рабочих задач.
➡️ Читайте на сайте: https://aff.top/blog/google-vypustil-gemini-omni-1-1-flash
🧠 Ещё больше инсайтов → в канале AFF.top
Google обновил Gemini Omni для генерации видео: модель умеет продолжать сцены с учётом до 10 секунд контекста и собирать ролик до 40 секунд, работать по референсу и делать переходы между кадрами. Главный вывод — инструмент стал практичнее для продакшена, а посекундная цена делает его заметно доступнее для тестов и рабочих задач.
➡️ Читайте на сайте: https://aff.top/blog/google-vypustil-gemini-omni-1-1-flash
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP - про арбитраж трафика и CPA рынок!
This media is not supported in your browser
VIEW IN TELEGRAM
Топ 5 PWA-сервисов для залива дейтинга
Статья показывает, что PWA выгодны не только для гемблы: в дейтинге они дают пуш-базу, больше траста и помогают маскировать оффер под бренд. Главный выбор зависит от цены инсталлов и теста GEO: для старта лучше бесплатные или дешёвые решения, а Progressier выделяется как самый практичный вариант для залива дейтинга.
➡️ Читайте на сайте: https://aff.top/blog/top-5-pwa-servisov-dlia-zaliva-deitinga
🧠 Ещё больше инсайтов → в канале AFF.top
Статья показывает, что PWA выгодны не только для гемблы: в дейтинге они дают пуш-базу, больше траста и помогают маскировать оффер под бренд. Главный выбор зависит от цены инсталлов и теста GEO: для старта лучше бесплатные или дешёвые решения, а Progressier выделяется как самый практичный вариант для залива дейтинга.
➡️ Читайте на сайте: https://aff.top/blog/top-5-pwa-servisov-dlia-zaliva-deitinga
🧠 Ещё больше инсайтов → в канале AFF.top
🔥 Новый участник НеТОПа на AffPapa!
https://affpapa.org/netop
🏆 НеТОП на AffPapa — https://affpapa.org/netop/go/27?src=broadcast
Платный рейтинг индустрии: плати больше — стоишь выше. Займи место в топе за USDT.
💰 Ставка: $100 · сейчас #1 в рейтинге
https://affpapa.org/netop
🏆 НеТОП на AffPapa — https://affpapa.org/netop/go/27?src=broadcast
Платный рейтинг индустрии: плати больше — стоишь выше. Займи место в топе за USDT.
💰 Ставка: $100 · сейчас #1 в рейтинге
affpapa.org
НеТОП — рейтинг индустрии за USDT | affpapa.org
Плати больше — стоишь выше. Аукцион мест в рейтинге affiliate-индустрии: минимум $10, потолка нет. Оплата USDT (TRC20), место ставится автоматически.
This week in caching: negative caching vs just not caching errors
What to do when the origin returns a 404 or 500:
— No negative caching: every request for a missing/erroring URL hits the origin. A bad bot hammering 10k non-existent URLs becomes 10k origin requests — a cheap DoS on yourself.
— Negative caching: cache the 404 for a short TTL (say 30-60s) so repeat misses are absorbed at the edge. Big relief during scan/attack traffic.
— The danger: caching a transient 500 too long pins an outage in place after you've fixed it. Keep error TTLs tiny and pair with
Rule: short positive TTL on 404s, near-zero on 5xx, and never cache a 5xx longer than your deploy/rollback window.
Bookmark: Nginx's
What to do when the origin returns a 404 or 500:
— No negative caching: every request for a missing/erroring URL hits the origin. A bad bot hammering 10k non-existent URLs becomes 10k origin requests — a cheap DoS on yourself.
— Negative caching: cache the 404 for a short TTL (say 30-60s) so repeat misses are absorbed at the edge. Big relief during scan/attack traffic.
— The danger: caching a transient 500 too long pins an outage in place after you've fixed it. Keep error TTLs tiny and pair with
stale-if-error so a blip serves the last good copy instead of a cached failure.Rule: short positive TTL on 404s, near-zero on 5xx, and never cache a 5xx longer than your deploy/rollback window.
Bookmark: Nginx's
proxy_cache_valid docs — note you can set per-status-code TTLs, which is exactly the knob for this.🔥 justbrand_create — новый участник рейтинга НеТОП на AffPapa!
🏆 Своё место в топе честно купил justbrand_create: https://affpapa.org/netop/go/28?src=broadcast
💰 Ставка: $111 · сейчас #1 в рейтинге
Весь рейтинг → https://affpapa.org/netop
🏆 Своё место в топе честно купил justbrand_create: https://affpapa.org/netop/go/28?src=broadcast
💰 Ставка: $111 · сейчас #1 в рейтинге
Весь рейтинг → https://affpapa.org/netop
This week in caching: in-process cache vs distributed cache
The layer people forget exists above Redis:
— In-process (APCu / array cache / local memory): lives in the PHP worker or app process — nanosecond reads, zero network hop. Unbeatable for tiny, hot, read-mostly data (config, feature flags, computed constants).
— Distributed (Redis/Memcached): shared across all servers, survives a worker restart, but every read is a network round-trip (sub-ms, but not free).
— The two-tier pattern: check APCu first, fall back to Redis, fall back to DB. Hottest keys never leave the process; shared state stays consistent across the fleet.
— The trap: putting per-server-mutable data in APCu and expecting consistency — each server has its own copy, so invalidation must hit all of them.
Use in-process for things that rarely change and are read constantly; Redis for everything shared.
Bookmark: Symfony's Cache component docs on chained adapters — clean reference for layering APCu over Redis.
The layer people forget exists above Redis:
— In-process (APCu / array cache / local memory): lives in the PHP worker or app process — nanosecond reads, zero network hop. Unbeatable for tiny, hot, read-mostly data (config, feature flags, computed constants).
— Distributed (Redis/Memcached): shared across all servers, survives a worker restart, but every read is a network round-trip (sub-ms, but not free).
— The two-tier pattern: check APCu first, fall back to Redis, fall back to DB. Hottest keys never leave the process; shared state stays consistent across the fleet.
— The trap: putting per-server-mutable data in APCu and expecting consistency — each server has its own copy, so invalidation must hit all of them.
Use in-process for things that rarely change and are read constantly; Redis for everything shared.
Bookmark: Symfony's Cache component docs on chained adapters — clean reference for layering APCu over Redis.
Forwarded from AFF.TOP - про арбитраж трафика и CPA рынок!
This media is not supported in your browser
VIEW IN TELEGRAM
Google отменил ручную пессимизацию в Еврозоне
Google перестал пессимизировать крупные новостники за паразитные страницы с казино и другими партнёрскими офферами в ЕЭЗ. Для арбитража вывод простой: в Европе схема с «пирогами» больше не даёт преимущества от траста основного домена, а Google впервые применяет разные правила по GEO под давлением регулятора.
➡️ Читайте на сайте: https://aff.top/blog/google-otmenil-ruchnuiu-pessimizaciiu-v-evrozone
🧠 Ещё больше инсайтов → в канале AFF.top
Google перестал пессимизировать крупные новостники за паразитные страницы с казино и другими партнёрскими офферами в ЕЭЗ. Для арбитража вывод простой: в Европе схема с «пирогами» больше не даёт преимущества от траста основного домена, а Google впервые применяет разные правила по GEO под давлением регулятора.
➡️ Читайте на сайте: https://aff.top/blog/google-otmenil-ruchnuiu-pessimizaciiu-v-evrozone
🧠 Ещё больше инсайтов → в канале AFF.top