<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Michal Drozd - Blog</title><description>Články o softvérovom vývoji, architektúre a technológiách.</description><link>https://www.michal-drozd.com/</link><language>sk</language><item><title>Ako postavit Solana escrow program pre marketplace sluzby (Anchor blueprint)</title><link>https://www.michal-drozd.com/sk/blog/solana-escrow-program-marketplace/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/solana-escrow-program-marketplace/</guid><description>Prakticka architektura Solana escrow programu pre marketplace: account model, instrukcie, bezpecnostne invarianty a rollout plan do produkcie.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Solana v roku 2026: use-casy, ktore sa naozaj nasadzuju</title><link>https://www.michal-drozd.com/sk/blog/solana-use-cases-2026/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/solana-use-cases-2026/</guid><description>Prakticky prehlad realnych Solana use-casov v roku 2026: stablecoin platby, Actions/Blinks a operacne vzory, ktore viete dodat tento kvartal.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Redis AOF fsync latency špičky: keď sa durabilita stane tvojím p99</title><link>https://www.michal-drozd.com/sk/blog/redis-aof-fsync-latency-spicky/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/redis-aof-fsync-latency-spicky/</guid><description>Redis AOF vie spraviť z durability p99 špičky: fsync tlak a BGREWRITEAOF fork CoW. Runbook na dôkaz, bezpečné mitigácie a guardrails.</description><pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Prometheus WAL replay peklo: pomalý štart a chýbajúce alerty</title><link>https://www.michal-drozd.com/sk/blog/prometheus-wal-replay-pomaly-start/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/prometheus-wal-replay-pomaly-start/</guid><description>Keď Prometheus štartuje desiatky minút, často je vinník WAL replay. Ako to dokázať z logov a disku, bezpečne sa zotaviť a predísť blind spotom.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate></item><item><title>tcpdump vidí SYN, ale služba timeoutuje: pasca listen backlogu</title><link>https://www.michal-drozd.com/sk/blog/tcpdump-syn-timeout-backlog-pasca/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/tcpdump-syn-timeout-backlog-pasca/</guid><description>Klienti timeoutujú, tcpdump ukazuje SYN (niekedy aj SYN-ACK), ale aplikácia nič neloguje. Častý vinník: Linux listen/accept fronty, ktoré sa pri load-e alebo CPU starvation preplnia.</description><pubDate>Sat, 03 Jan 2026 00:00:00 GMT</pubDate></item><item><title>PostgreSQL logical replication lag: veľké transakcie a reorder buffer spilly</title><link>https://www.michal-drozd.com/sk/blog/postgresql-logical-replication-lag-velke-transakcie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-logical-replication-lag-velke-transakcie/</guid><description>Jedna obrovská transakcia vie pripnúť logical replication na hodiny. Runbook na rýchlu identifikáciu, bezpečné tunenie decodingu a kontrakt na bounded transakcie.</description><pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Span Contracts: Trace-driven API contract testing z OpenTelemetry</title><link>https://www.michal-drozd.com/sk/blog/span-contracts-otel-contract-testing/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/span-contracts-otel-contract-testing/</guid><description>Odhaľ breaking zmeny v API z OTel spanov, hashuj len JSON shape a zastav CI bez ukladania payloadov.</description><pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Circuit Breaker Anti-Patterns: Keď Ochrana Spôsobuje Výpadky</title><link>https://www.michal-drozd.com/sk/blog/circuit-breaker-anti-patterns/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/circuit-breaker-anti-patterns/</guid><description>Circuit breakery bránia kaskádovým zlyhaniam ale zlá konfigurácia ich zhoršuje. Ukážem 5 anti-patternov: zdieľané breakery, zlé thresholdy, žiadny fallback.</description><pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate></item><item><title>ingress-nginx reload búrky: prečo 502 špičky sedia s Ingress churnom</title><link>https://www.michal-drozd.com/sk/blog/ingress-nginx-reload-burky/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/ingress-nginx-reload-burky/</guid><description>Reloady NGINX Ingressu vedia dropovať keep-alive a robiť 502 špičky pri častých zmenách. Runbook na dôkaz reloadu, zníženie churnu a hardening.</description><pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Certifikat nie je expirnuty, vas node ano: Time Drift rozbitie TLS a JWT v Kubernetes</title><link>https://www.michal-drozd.com/sk/blog/time-drift-tls-jwt-kubernetes/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/time-drift-tls-jwt-kubernetes/</guid><description>Sporadicke TLS handshake zlyhania a JWT zamietnutia napriec sluzbami. Vsetko prejde ked to skontrolujete. Vinik: hodiny nodu sa posunuli alebo skocili, a NTP to opravilo skor nez ste to stihli zachytit.</description><pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate></item><item><title>EXPLAIN vám klamal: PostgreSQL Prepared Statement Plan Cliff</title><link>https://www.michal-drozd.com/sk/blog/postgresql-prepared-statement-plan-cliff/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-prepared-statement-plan-cliff/</guid><description>Váš EXPLAIN vyzerá perfektne ale produkcia horí. Vinník: PostgreSQL ticho prepol z custom plánu na generic plán po dostatočnom počte vykonaní, a generic plán je katastrofálne zlý.</description><pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Prometheus remote_write backpressure: keď monitoring zaplní disk a ešte aj stratí dáta</title><link>https://www.michal-drozd.com/sk/blog/prometheus-remote-write-backpressure/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/prometheus-remote-write-backpressure/</guid><description>Runbook pre výpadky remote_write: ako zmerať lag, odhadnúť time-to-disk-full, bezpečne ladiť queue_config a vedome zvoliť trade-off medzi prežitím a stratou.</description><pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Cardinality Contracts: sprav z Prometheus labelov API s budgetom</title><link>https://www.michal-drozd.com/sk/blog/cardinality-contracts-prometheus-label-budgety/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/cardinality-contracts-prometheus-label-budgety/</guid><description>Definuj budgety na cardinality, over ich v CI a pridaj runtime firewall, aby si zastavil explozie labelov pred produkciou.</description><pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Prometheus native histogramy v produkcii: rollout plán, budgety a failure módy</title><link>https://www.michal-drozd.com/sk/blog/prometheus-native-histogramy-produkcia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/prometheus-native-histogramy-produkcia/</guid><description>Prometheus native histogramy vedia odpáliť pamäť, WAL aj remote_write. Návod na postupné nasadenie, budgety a konkrétne queries na verifikáciu.</description><pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Funguje v psql, nestabilne v produkcii: Ticha vrazda LISTEN/NOTIFY cez PgBouncer</title><link>https://www.michal-drozd.com/sk/blog/pgbouncer-listen-notify-transaction-pooling/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/pgbouncer-listen-notify-transaction-pooling/</guid><description>PostgreSQL LISTEN/NOTIFY funguje perfektne v lokalnom testovani ale notifikacie nahodne prestanu prichodit v produkcii. Vinik: transaction pooling ticho prideluje vase spojenie niekomu inemu.</description><pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL XID wraparound: núdzový playbook pre vacuum freeze v incidente</title><link>https://www.michal-drozd.com/sk/blog/postgresql-xid-wraparound-nudzovy-playbook/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-xid-wraparound-nudzovy-playbook/</guid><description>PostgreSQL môže prejsť do read-only pri XID wraparound. Núdzový playbook: nájsť najstaršie tabuľky, odblokovať vacuum freeze a prevencia do budúcna.</description><pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Dash Contracts v Go: CI kompilator pre Grafana dashboardy a Prometheus alerty</title><link>https://www.michal-drozd.com/sk/blog/dash-contracts-grafana-alerty-ci/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/dash-contracts-grafana-alerty-ci/</guid><description>Vytiahni PromQL z dashboardov a rules suborov, over selektory proti /metrics a zastav CI este pred deployom.</description><pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Pakety prichadzaju ale aplikacia timeoutuje: rp_filter pasca v Kubernetes</title><link>https://www.michal-drozd.com/sk/blog/linux-rp-filter-asymetricke-routovanie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/linux-rp-filter-asymetricke-routovanie/</guid><description>tcpdump ukazuje pakety ktore prichadzaju, ale aplikacia nic nevidi. Vinik: Linux reverse path filtering ticho zahadzuje pakety predtym nez dosiahnu iptables, sposobene asymetrickym routovanim.</description><pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Pasca hot_standby_feedback: ako opravíte repliku a pomaly zabijete primár</title><link>https://www.michal-drozd.com/sk/blog/postgresql-hot-standby-feedback-bloat-pasca/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-hot-standby-feedback-bloat-pasca/</guid><description>hot_standby_feedback zastaví rušenie query na replike, ale vie nafúknuť primár v dňoch. Diagnostika xmin pinningu, bezpečné mitigácie a guardrails.</description><pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes TLS Certifikát Rotácia: Výpadok o 3:00 Ráno</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-tls-certifikat-rotacia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-tls-certifikat-rotacia/</guid><description>Certifikát expiroval o 3:00, služba padla. cert-manager renewal ticho zlyhal. Ukážem monitoring, testovanie rotácie a prevenciu cert-related výpadkov.</description><pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL checkpoint špičky: prečo p99 exploduje každých N minút</title><link>https://www.michal-drozd.com/sk/blog/postgresql-checkpoint-spiky/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-checkpoint-spiky/</guid><description>Reprodukovateľný postup na diagnostiku a odstránenie checkpoint-induced latency špičiek pomocou pgbench, pg_stat_bgwriter a WAL/IO budgetu.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate></item><item><title>&apos;No space left on device&apos; s 40% voľného disku: Inode a OverlayFS Death Spiral</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-inode-exhaustion-overlayfs/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-inode-exhaustion-overlayfs/</guid><description>df -h ukazuje 40% voľného miesta. Ale váš kontajner stále padá s ENOSPC. Vinník: vyčerpanie inodov na overlayfs vrstvách, neviditeľné pre štandardný monitoring.</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate></item><item><title>OpenTelemetry Collector backpressure: dropy, memory_limiter a queue ako guardrails</title><link>https://www.michal-drozd.com/sk/blog/otel-collector-backpressure-memory-limiter/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/otel-collector-backpressure-memory-limiter/</guid><description>OpenTelemetry Collector pri loade dropuje spany kvôli backpressure exportérov. Oprava cez memory_limiter, queue a batch tuning + verifikácia.</description><pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Vyčerpanie Connection Poolu: Tichý Spúšťač Výpadkov</title><link>https://www.michal-drozd.com/sk/blog/databazovy-connection-pool-vycerpanie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/databazovy-connection-pool-vycerpanie/</guid><description>Aplikácia visí, ale databáza vyzerá zdravo. Najčastejšie je vyčerpaný connection pool. Ukážem detekciu, rozumné dimenzovanie a prevenciu únikov spojení.</description><pubDate>Sun, 30 Nov 2025 00:00:00 GMT</pubDate></item><item><title>CSI VolumeAttachment zaseknutý: pody v ContainerCreating a drain, ktorý sa nepohne</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-volumeattachment-zaseknuty-csi/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-volumeattachment-zaseknuty-csi/</guid><description>Pody zaseknuté v ContainerCreating často skrývajú stuck CSI VolumeAttachment. Runbook na diagnostiku, bezpečné detach, prevenciu data loss a alerty.</description><pubDate>Sun, 30 Nov 2025 00:00:00 GMT</pubDate></item><item><title>RSS Contracts: Ako prestat zabijat Java pody v Kubernetes (OOMKilled) testovanim RSS ako API</title><link>https://www.michal-drozd.com/sk/blog/rss-contracts-jvm-oomkilled-kubernetes/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/rss-contracts-jvm-oomkilled-kubernetes/</guid><description>Cgroup RSS budgety, CI sampling a runtime headroom ti chytia JVM memory regresie skor, nez trafia produkciu.</description><pubDate>Thu, 27 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Pod zaseknutý v Terminating: produkčný rozhodovací strom pre finalizery, volume a mŕtve nody</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-pod-zaseknuty-terminating-playbook/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-pod-zaseknuty-terminating-playbook/</guid><description>Konzervatívny runbook na bezpečné odblokovanie Terminating Podov: finalizery, CSI/volume cleanup, mŕtve nody a kedy (a ako) použiť force delete.</description><pubDate>Wed, 26 Nov 2025 00:00:00 GMT</pubDate></item><item><title>pg_waldump WAL Forenzika: Rekonštrukcia Čo Sa Stalo s Tvojimi Dátami</title><link>https://www.michal-drozd.com/sk/blog/postgresql-wal-forensics/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-wal-forensics/</guid><description>Niečo zmazalo riadky z produkcie ale nikto nepriznáva že spustil DELETE. Použi pg_waldump na analýzu WAL súborov a rekonštruuj presne čo sa stalo a kedy.</description><pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes graceful shutdown ako kontrakt: nula 502 počas rolloutov (HTTP + gRPC)</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-graceful-shutdown-rollouty/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-graceful-shutdown-rollouty/</guid><description>Reprodukovateľný postup ako odstrániť 502/ECONNRESET pri rolloute: readiness-driven draining, preStop, SIGTERM a merateľný drain budget.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate></item><item><title>5000 Unacked správ a stúpa: Zastav RabbitMQ consumer meltdowny v CI</title><link>https://www.michal-drozd.com/sk/blog/rabbitmq-ack-contracts/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/rabbitmq-ack-contracts/</guid><description>Queue vyzerá zdravo až do deploymentu, potom messages_unacknowledged exploduje, pamäť stúpa a redelivery storms začínajú. Vinník: tvoj prefetch je príliš vysoký a nikto netestoval skutočné ack správanie.</description><pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Ephemeral-storage evictions v Kubernetes: logová búrka, ktorá vyhodila zdravé pody</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-ephemeral-storage-eviction-logova-burka/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-ephemeral-storage-eviction-logova-burka/</guid><description>Pody sú evicted kvôli ephemeral-storage aj keď disk vyzerá voľný. Runbook: nodefs/imagefs, logy, kubelet GC a nastavenie budgetov + log rotácia.</description><pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes OOM Killer: Prečo Kontajner Zomiera pri 50% Pamäte</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-oom-killer-memory-limity/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-oom-killer-memory-limity/</guid><description>Kontajner má 4GB memory limit ale OOM kill pri 2GB used. Kernel buffers, page cache a cgroup accounting triky spôsobujú skoré OOMKills. Tu je celý obraz.</description><pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Jedna partition na 99% CPU: Zastav Kafka hotspoty skôr ako dorazia do produkcie</title><link>https://www.michal-drozd.com/sk/blog/kafka-partition-skew-contracts/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kafka-partition-skew-contracts/</guid><description>Všetky partitiony vyzerajú vyvážené v testovaní, potom príde produkčný traffic a jedna partition sa roztopí. Vinník: tvoj partition key má otrásnú kardinalitu a nikto si toho nevšimol.</description><pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes APF vyhladovanie: keď jeden controller zablokuje kubectl</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-api-priority-fairness-vyhladovanie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-api-priority-fairness-vyhladovanie/</guid><description>APF vie vyhladovať Kubernetes API: kubectl visí, controllery timeoutujú a rastú 429. Runbook na izoláciu klienta, úpravu FlowSchema a verifikáciu.</description><pubDate>Fri, 14 Nov 2025 00:00:00 GMT</pubDate></item><item><title>ClickHouse ReplacingMergeTree: Ilúzia Deduplikácie</title><link>https://www.michal-drozd.com/sk/blog/clickhouse-replacingmergetree-deduplikacia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/clickhouse-replacingmergetree-deduplikacia/</guid><description>ReplacingMergeTree nededuplikuje pri SELECT. Merguje eventuálne. Vaše queries vracajú duplikáty kým neprebehne background merge. Tu je riešenie.</description><pubDate>Thu, 13 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Kafka rebalance búrky: prečo scale-out consumerov vie zhoršiť lag</title><link>https://www.michal-drozd.com/sk/blog/kafka-consumer-rebalance-burka/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kafka-consumer-rebalance-burka/</guid><description>Kafka rebalance burky vedia zhoršiť lag pri scale-out. Runbook na max.poll, heartbeat, cooperative-sticky a config diffs, ktoré stabilizujú group.</description><pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes DNS: Latency Daň ndots:5</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-dns-caching-ndots/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-dns-caching-ndots/</guid><description>Každý DNS query v K8s robí 5 neúspešných lookupov pred úspechom. ndots:5 default spôsobuje 100ms+ latenciu. Tu je ako to opraviť.</description><pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Envoy outlier detection brownouty: keď mesh vyhodí zdravé pody</title><link>https://www.michal-drozd.com/sk/blog/envoy-outlier-detection-brownouty/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/envoy-outlier-detection-brownouty/</guid><description>Debug Istio/Envoy outlier detection brownoutov: prečo mesh vyhadzuje zdravé pody a rastú 503 v produkcii. Obsahuje xDS checks, bezpečné fixy a alerty.</description><pubDate>Thu, 06 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Go GOMAXPROCS v Kontajneroch: Problém Detekcie CPU</title><link>https://www.michal-drozd.com/sk/blog/go-gomaxprocs-kontajnery/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/go-gomaxprocs-kontajnery/</guid><description>Go vidí 64 CPU hosta ale váš kontajner má limit 2 CPU. GOMAXPROCS=64 spôsobuje nadmerný context switching a throttling. Tu je riešenie.</description><pubDate>Wed, 05 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Envoy/Istio 503 UF/UO/UT: keď výpadok robí mesh, nie aplikácia</title><link>https://www.michal-drozd.com/sk/blog/envoy-istio-503-uf-uo-ut/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/envoy-istio-503-uf-uo-ut/</guid><description>Envoy/Istio vie vrátiť 503 UF/UO/UT, keď pretečie connection pool. Ako čítať flags, pozrieť proxy stats, upraviť DestinationRule a rýchlo overiť.</description><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Architektúra ako kód: ADR, C4 diagramy a quality gates v CI</title><link>https://www.michal-drozd.com/sk/blog/architektura-ako-kod/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/architektura-ako-kod/</guid><description>Kompletný sprievodca ako zaviesť living documentation pomocou Architecture Decision Records, C4 modelu a automatizácie v CI/CD pipeline.</description><pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Cilium BPF conntrack map full: náhodné resetovania aj keď conntrack vyzerá OK</title><link>https://www.michal-drozd.com/sk/blog/cilium-bpf-conntrack-map-vycerpanie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/cilium-bpf-conntrack-map-vycerpanie/</guid><description>Náhodné resetovania s Cilium? Ako sa zaplnia eBPF conntrack (CT) mapy, prečo netfilter conntrack vyzerá OK, a runbook na sizing a verifikáciu v Kubernetes.</description><pubDate>Wed, 29 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Python GIL a Kubernetes CPU Limity: Pasca Threadingu</title><link>https://www.michal-drozd.com/sk/blog/python-gil-kubernetes-cpu-limity/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/python-gil-kubernetes-cpu-limity/</guid><description>Vaša Python appka má 4 thready ale K8s dáva 1 CPU. GIL + CFS kvóta = brutálny throttling. Ukážem prečo a ako správne nastaviť workery.</description><pubDate>Mon, 27 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes p99 špičky bez OOM: Diagnostika cgroup v2 memory.high cez PSI</title><link>https://www.michal-drozd.com/sk/blog/cgroup-v2-memory-high-psi-kubernetes/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/cgroup-v2-memory-high-psi-kubernetes/</guid><description>Použite PSI a cgroup v2 memory.high na vysvetlenie p99 špičiek bez OOMKill. Kubernetes runbook s príkazmi, diffs, bezpečnými mitigáciami a alertmi.</description><pubDate>Sat, 25 Oct 2025 00:00:00 GMT</pubDate></item><item><title>S3 Intelligent-Tiering: Pasca Malých Objektov</title><link>https://www.michal-drozd.com/sk/blog/s3-intelligent-tiering-past/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/s3-intelligent-tiering-past/</guid><description>S3 Intelligent-Tiering šetrí peniaze pre veľké súbory ale účtuje minimum 128KB overhead. Pre milióny malých objektov ZVYŠUJE náklady. Ukážem matematiku.</description><pubDate>Sat, 25 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Connection Pool Sizing s Little&apos;s Law: Matematický Prístup k HikariCP a PgBouncer</title><link>https://www.michal-drozd.com/sk/blog/connection-pool-littles-law/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/connection-pool-littles-law/</guid><description>Pool size 50 lebo tak to bolo vždy? Ukážem ako použiť Little&apos;s Law na výpočet optimálnej veľkosti poolu a dokážem to load testom.</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes CPU Throttling Pitva: Prečo p99 Latencia Exploduje pri 40% CPU Usage</title><link>https://www.michal-drozd.com/sk/blog/k8s-cpu-throttling/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/k8s-cpu-throttling/</guid><description>CPU vyzerá OK, ale tail latencia je katastrofálna. Ukážem ako korelovať CFS throttling s latency spikes a prečo odstránenie CPU limitov môže paradoxne pomôcť.</description><pubDate>Sun, 19 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Elasticsearch Hot Shard Problém: Keď Jeden Node Robí Všetku Prácu</title><link>https://www.michal-drozd.com/sk/blog/elasticsearch-hot-shard-problem/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/elasticsearch-hot-shard-problem/</guid><description>5 data nodov ale jeden je na 100% CPU. Nerovnomerné routing kľúče vytvárajú hot shardy. Ukážem ako detekovať skew a opraviť ho pomocou routing stratégií.</description><pubDate>Thu, 16 Oct 2025 00:00:00 GMT</pubDate></item><item><title>UUIDv4 vs ULID vs TSID: Dopad na PostgreSQL B-Tree Indexy po 100M Záznamoch</title><link>https://www.michal-drozd.com/sk/blog/uuid-ulid-tsid-postgresql/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/uuid-ulid-tsid-postgresql/</guid><description>Náhodné UUID ako Primary Key spôsobujú index bloat a random I/O. Benchmark s konkrétnymi číslami - veľkosť indexu, cache hit ratio a WAL volume po 100M insertoch.</description><pubDate>Tue, 14 Oct 2025 00:00:00 GMT</pubDate></item><item><title>JWT Revokovanie Stratégie: Keď Stateless Tokeny Potrebujú Stav</title><link>https://www.michal-drozd.com/sk/blog/jwt-revokovanie-strategie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/jwt-revokovanie-strategie/</guid><description>Používateľ kompromitovaný, treba revokovať JWT okamžite. Ale JWT sú immutable. Porovnávam allowlist, denylist a krátku expiráciu s performance benchmarkmi.</description><pubDate>Sun, 12 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Polia zmizli ale nič nespadlo: Zachyť Schema Evolution bugy pred produkciou</title><link>https://www.michal-drozd.com/sk/blog/schema-evolution-contracts/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/schema-evolution-contracts/</guid><description>Producer upgradol Protobuf, consumer ešte na starej verzii. Žiadne errory, žiadne warningy—len tichá strata dát v produkcii. Tvoja schema evolúcia rozbila backward compatibility a CI si toho nevšimlo.</description><pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate></item><item><title>CI/CD pre monorepo: Rýchlosť, cache, selektívne testy a supply-chain bezpečnosť</title><link>https://www.michal-drozd.com/sk/blog/cicd-monorepo/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/cicd-monorepo/</guid><description>Kompletný blueprint pre efektívny CI/CD pipeline v monorepo - od path filters cez remote cache až po SBOM a SLSA. Praktické riešenia, nie teória.</description><pubDate>Sat, 04 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Structured Logging Performance: Keď Sa Logger Stane Bottleneckom</title><link>https://www.michal-drozd.com/sk/blog/structured-logging-performance/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/structured-logging-performance/</guid><description>Pri 50k logov/sec JSON serializácia žerie 30% CPU. Štandardná knižnica encoding/json je pomalá. Benchmarkujem zap vs zerolog vs slog so skutočnými číslami.</description><pubDate>Sun, 28 Sep 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL HOT Updates + FILLFACTOR: Ako Znížiť Index Bloat o 60%</title><link>https://www.michal-drozd.com/sk/blog/postgresql-hot-updates-fillfactor/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-hot-updates-fillfactor/</guid><description>Vacuum beží úspešne, ale disk rastie a cache hit ratio klesá. Ukážem ako kvantifikovať HOT-update eligibility pomocou pgstattuple a optimalizovať fillfactor.</description><pubDate>Tue, 23 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Circuit Breaker vs Rate Limiter vs Bulkhead: Kedy Ktorý Pattern Použiť</title><link>https://www.michal-drozd.com/sk/blog/circuit-breaker-rate-limiter-bulkhead/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/circuit-breaker-rate-limiter-bulkhead/</guid><description>Tri resilience patterns, ktoré sa často zamieňajú. Ukážem presne kedy ktorý bráni cascade failures a kedy to zhoršuje so skutočnými metrikami.</description><pubDate>Fri, 19 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Keď Prepared Statements Spravia PostgreSQL 10× Pomalším: Generic Plan Trap</title><link>https://www.michal-drozd.com/sk/blog/postgresql-prepared-statements-past/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-prepared-statements-past/</guid><description>Rovnaký query, rovnaké parametre, ale prod je pomalý a staging funguje. Ukážem ako reprodukovať generic plan problém s pgBouncer, Java/Go a ako ho fixnúť.</description><pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Logical Replication Slot WAL Bloat: Keď Subscribery Odídu Offline</title><link>https://www.michal-drozd.com/sk/blog/logical-replication-slot-wal-retention/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/logical-replication-slot-wal-retention/</guid><description>Disk sa plní WAL súbormi. Príčina: logical replication slot consumer odišiel offline a PostgreSQL drží všetok WAL odvtedy pretože by mohol byť potrebný.</description><pubDate>Tue, 09 Sep 2025 00:00:00 GMT</pubDate></item><item><title>eBPF Off-CPU Analýza: Nájdenie Latencie Ktorú Metriky Nevidia</title><link>https://www.michal-drozd.com/sk/blog/ebpf-off-cpu-debugging/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/ebpf-off-cpu-debugging/</guid><description>CPU je na 20% ale latencia je 500ms. Štandardné profilery neukazujú nič. Appka čaká, nepočíta. Ukážem ako použiť eBPF na nájdenie na čo čaká.</description><pubDate>Sun, 07 Sep 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL Autovacuum SLO Tuning: Ako nastaviť vacuum pre 200M riadkov a 5k UPSERT/s</title><link>https://www.michal-drozd.com/sk/blog/postgresql-autovacuum-slo/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-autovacuum-slo/</guid><description>Autovacuum je buď ignorovaný alebo cargo-cult tunovaný. Ukážem ako ho premeniť na SLO-driven systém s konkrétnymi číslami, pg_stat metriky a reprodukovateľným testom.</description><pubDate>Thu, 04 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Java Virtual Threads vs Reactive: Kedy Zahodiť WebFlux za Project Loom</title><link>https://www.michal-drozd.com/sk/blog/java-virtual-threads-vs-reactive/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/java-virtual-threads-vs-reactive/</guid><description>Virtual Threads v Java 21 sľubujú jednoduchší kód ako Reactive. Benchmarkujem oba pri 10k concurrent connections a ukážem kde ktorý vyhráva.</description><pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate></item><item><title>gRPC Deadline Propagácia: Prevencia Kaskádových Zlyhaní</title><link>https://www.michal-drozd.com/sk/blog/grpc-deadline-propagacia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/grpc-deadline-propagacia/</guid><description>Frontend sa vzdá po 5s ale backend pracuje ďalších 30s. Bez deadline propagácie mrháte resources na odsúdené requesty. Ukážem ako to implementovať v Go.</description><pubDate>Sat, 23 Aug 2025 00:00:00 GMT</pubDate></item><item><title>JVM Native Memory v Kubernetes: Prečo Pod Dostane OOMKilled s 50% Heap</title><link>https://www.michal-drozd.com/sk/blog/jvm-native-memory-kubernetes/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/jvm-native-memory-kubernetes/</guid><description>Heap je 50% plný ale pod dostane OOMKilled. Ukážem ako sledovať native memory (Metaspace, threads, NIO) a zabrániť container memory problémom.</description><pubDate>Sat, 16 Aug 2025 00:00:00 GMT</pubDate></item><item><title>gRPC v Kubernetes: Prečo Service round-robin klame</title><link>https://www.michal-drozd.com/sk/blog/grpc-load-balancing-k8s/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/grpc-load-balancing-k8s/</guid><description>Prečo má jeden pod 90% trafficu pri gRPC. Reprodukovateľný lab, riešenia od client-side LB po service mesh, a production checklist.</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Linux Page Cache Thrashing v Kontajneroch: Keď Voľná Pamäť Nie Je Voľná</title><link>https://www.michal-drozd.com/sk/blog/kontajner-page-cache-thrashing/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kontajner-page-cache-thrashing/</guid><description>Váš kontajner má 2GB voľné ale beží pomaly. Page cache sa počíta proti memory limitu. File I/O vytláča code pages. Vysvetlím s benchmarkmi a riešeniami.</description><pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Zero-downtime migrácie PostgreSQL: Expand/Contract, backfill a rollback stratégie</title><link>https://www.michal-drozd.com/sk/blog/zero-downtime-postgresql-migracie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/zero-downtime-postgresql-migracie/</guid><description>Praktický playbook pre bezpečné databázové migrácie v produkcii. Od expand/contract patternu cez online indexy až po monitoring a rollback.</description><pubDate>Tue, 29 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Prometheus Kardinalita Explózia: Detekcia, Prevencia a Obnova</title><link>https://www.michal-drozd.com/sk/blog/prometheus-cardinalita-explozia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/prometheus-cardinalita-explozia/</guid><description>Jeden developer pridal user_id label. Prometheus dostal OOM. Ukážem ako detekovať high-cardinality metriky skôr než zabiajú monitoring, s relabel configami na ich drop.</description><pubDate>Wed, 23 Jul 2025 00:00:00 GMT</pubDate></item><item><title>HTTP Keep-Alive Connection Reset: Prečo Vaše Requesty Zlyhávajú s &apos;Connection Reset by Peer&apos;</title><link>https://www.michal-drozd.com/sk/blog/http-keepalive-connection-reset/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/http-keepalive-connection-reset/</guid><description>Sporadické &apos;connection reset by peer&apos; chyby v produkcii. Ukážem ako nesúlad keep-alive timeoutov medzi klientom a serverom toto spôsobuje a ako to opraviť.</description><pubDate>Wed, 16 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Redlock vs PostgreSQL Advisory Locks: Kedy Nepotrebujete Redis na Distributed Locking</title><link>https://www.michal-drozd.com/sk/blog/redlock-vs-postgres-advisory-locks/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/redlock-vs-postgres-advisory-locks/</guid><description>Pridávate Redis len pre distributed locks? PostgreSQL advisory locks môžu stačiť. Porovnávam oba s failure scenármi a performance benchmarkami.</description><pubDate>Sun, 13 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Protobuf evolúcia v eventoch: Prečo buf breaking nestačí</title><link>https://www.michal-drozd.com/sk/blog/protobuf-event-evolution/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/protobuf-event-evolution/</guid><description>Ako bezpečne evolovať Protobuf schémy v event-driven systémoch. Pravidlá pre .proto, upcaster pattern a backward compatibility.</description><pubDate>Sun, 06 Jul 2025 00:00:00 GMT</pubDate></item><item><title>$10k/Mesiac AWS Chyba: NAT Gateway vs VPC Endpoints</title><link>https://www.michal-drozd.com/sk/blog/aws-nat-gateway-vs-vpc-endpoints/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/aws-nat-gateway-vs-vpc-endpoints/</guid><description>Vaše privátne subnety používajú NAT Gateway pre S3 a DynamoDB. Platíte $0.045/GB za bezplatný traffic. Ukážem ako VPC Endpoints ušetria tisíce mesačne.</description><pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL TOAST Stratégia: Prečo Váš JSON Stĺpec Zabíja Výkon Queries</title><link>https://www.michal-drozd.com/sk/blog/postgresql-toast-optimalizacia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-toast-optimalizacia/</guid><description>SELECT * na tabuľke s JSON je 10x pomalší ako očakávané. Ukážem ako TOAST storage funguje a kedy zmeniť stratégie pre veľké stĺpce.</description><pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Tail-based sampling v OpenTelemetry: Sizing, pamäťové pády a cost model</title><link>https://www.michal-drozd.com/sk/blog/otel-tail-sampling/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/otel-tail-sampling/</guid><description>Praktický sizing guide pre tail sampling v OpenTelemetry Collector. Od decision_wait cez memory limity až po cost-benefit analýzu.</description><pubDate>Sat, 21 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Cache Stampede Prevencia: Probabilistická Skorá Expirácia (X-Fetch)</title><link>https://www.michal-drozd.com/sk/blog/cache-stampede-xfetch/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/cache-stampede-xfetch/</guid><description>100 requestov zasiahne expirovanú cache súčasne. Všetkých 100 sa pýta databázy. Implementujem X-Fetch algoritmus ktorý refreshuje cache pred expiráciou bez zamykania.</description><pubDate>Sat, 14 Jun 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL Replication Slot Bloat: Ako Jeden Neaktívny Slot Naplnil 500GB Disk</title><link>https://www.michal-drozd.com/sk/blog/postgresql-replication-slot-bloat/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-replication-slot-bloat/</guid><description>Disk je na 95%, WAL adresár má 400GB. Ukážem ako replication slots bránia WAL cleanup a playbook pre prevenciu a recovery.</description><pubDate>Sun, 08 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes conntrack Vyčerpanie: Tichý Zabijak Paketov</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-conntrack-vycerpanie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-conntrack-vycerpanie/</guid><description>Náhodné DNS timeouty, dropped spojenia, služby timeout-ujú. Vaša nf_conntrack tabuľka je plná. Ukážem ako diagnostikovať, monitorovať a opraviť tento K8s networking problém.</description><pubDate>Tue, 03 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Architectural Linting: Automatizovaná ochrana proti spaghetti kódu</title><link>https://www.michal-drozd.com/sk/blog/architectural-linting/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/architectural-linting/</guid><description>Ako vynútiť architektonické pravidlá v CI/CD. Dependency Cruiser pre JS/TS, ArchUnit pre Java a praktické príklady konfigurácie.</description><pubDate>Wed, 28 May 2025 00:00:00 GMT</pubDate></item><item><title>Redis Memory Fragmentácia: Keď maxmemory Nestačí</title><link>https://www.michal-drozd.com/sk/blog/redis-memory-fragmentacia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/redis-memory-fragmentacia/</guid><description>Váš Redis má 4GB maxmemory ale RSS ukazuje 6GB. OOM killer zasiahne. Vysvetlím jemalloc fragmentáciu s reprodukciou a tuningom activedefrag.</description><pubDate>Thu, 22 May 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL Idle in Transaction: Núdzový Playbook pre Zaseknuté Spojenia</title><link>https://www.michal-drozd.com/sk/blog/postgresql-idle-transaction-playbook/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-idle-transaction-playbook/</guid><description>Autovacuum nemôže bežať, table bloat rastie, všetko kvôli jednému &apos;idle in transaction&apos; spojeniu. Tu je detekcia a kill playbook.</description><pubDate>Tue, 20 May 2025 00:00:00 GMT</pubDate></item><item><title>Idempotencia API: Ako navrhnúť endpointy odolné voči retry</title><link>https://www.michal-drozd.com/sk/blog/api-idempotency/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/api-idempotency/</guid><description>Kompletný návod na implementáciu idempotentných API. Od Idempotency-Key cez Redis locking až po stavový diagram spracovania.</description><pubDate>Mon, 12 May 2025 00:00:00 GMT</pubDate></item><item><title>CoreDNS vs NodeLocal DNS Cache: Zníženie Kubernetes DNS Latencie 10x</title><link>https://www.michal-drozd.com/sk/blog/coredns-nodelocal-benchmark/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/coredns-nodelocal-benchmark/</guid><description>Vaše pody robia 100 DNS queries per request. CoreDNS je bottleneck. Benchmarkujem NodeLocal DNS cache a ukážem konfiguráciu pre produkciu.</description><pubDate>Thu, 08 May 2025 00:00:00 GMT</pubDate></item><item><title>Clean Code: Princípy, ktoré by mal poznať každý developer</title><link>https://www.michal-drozd.com/sk/blog/clean-code-principy/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/clean-code-principy/</guid><description>Prehľad kľúčových princípov čistého kódu a prečo sú dôležité pre dlhodobú udržateľnosť softvérových projektov.</description><pubDate>Fri, 02 May 2025 00:00:00 GMT</pubDate></item><item><title>Prestaňte mockovať databázu: Integračné testy v ére Testcontainers</title><link>https://www.michal-drozd.com/sk/blog/testcontainers-vs-mocking/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/testcontainers-vs-mocking/</guid><description>Prečo mocky klamú a ako Testcontainers zmení váš prístup k testovaniu. Praktické príklady, CI setup a stratégie izolácie dát.</description><pubDate>Thu, 24 Apr 2025 00:00:00 GMT</pubDate></item><item><title>GIN Index Pending List Overflow: Rýchle Zápisy, Pomalé Vyhľadávanie</title><link>https://www.michal-drozd.com/sk/blog/gin-index-pending-list-overflow/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/gin-index-pending-list-overflow/</guid><description>Full-text search bol rýchly, teraz je pomalý. Príčina: GIN index pending list narástol obrovský počas bulk insertov a každé vyhľadávanie musí teraz skenovať nezoradené pending záznamy.</description><pubDate>Thu, 17 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Adaptive Concurrency Limits: Prestaňte Hádať Veľkosti Thread Poolov</title><link>https://www.michal-drozd.com/sk/blog/adaptive-concurrency-limits/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/adaptive-concurrency-limits/</guid><description>Thread pool 200 lebo to hovorí Stack Overflow? Netflix algoritmus upravuje konkurenciu automaticky podľa latencie. Ukážem ako funguje s benchmarkmi.</description><pubDate>Fri, 11 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes Cross-Zone Traffic: Skrytý Náklad Ktorý Žerie Váš Cloud Bill</title><link>https://www.michal-drozd.com/sk/blog/k8s-cross-zone-traffic/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/k8s-cross-zone-traffic/</guid><description>Váš AWS účet má $5000/mesiac za data transfer. Polovica je cross-zone traffic v rámci clustera. Ukážem ako ho zmerať a znížiť.</description><pubDate>Tue, 08 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Feature flags bez technického dlhu: Automatická detekcia stale flags</title><link>https://www.michal-drozd.com/sk/blog/feature-flags-stale-detection/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/feature-flags-stale-detection/</guid><description>End-to-end riešenie pre lifecycle management feature flags. Od runtime metrík cez statickú analýzu až po automatické removal PR.</description><pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes rollout bez výpadku DB: Ako zastaviť PostgreSQL connection storm</title><link>https://www.michal-drozd.com/sk/blog/k8s-postgresql-connection-storm/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/k8s-postgresql-connection-storm/</guid><description>Reprodukovateľný lab na demonštráciu connection stormu pri K8s rolloutoch. PgBouncer, preStop hooks a jitter - praktické riešenia s benchmarkmi.</description><pubDate>Tue, 01 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Transactional Outbox: Ako vyriešiť Dual Write problém bez 2PC</title><link>https://www.michal-drozd.com/sk/blog/transactional-outbox/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/transactional-outbox/</guid><description>Praktická implementácia Outbox patternu v Node.js/TypeScript s PostgreSQL LISTEN/NOTIFY. Race-condition case study a production-ready riešenie.</description><pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Soft Delete past: Prečo is_deleted zabíja tvoju databázu (a čo s tým)</title><link>https://www.michal-drozd.com/sk/blog/soft-delete-past/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/soft-delete-past/</guid><description>Praktický rozbor prečo soft delete po rokoch rozbije výkon databázy. Benchmarky, partitioning riešenie a migračný checklist.</description><pubDate>Sun, 23 Mar 2025 00:00:00 GMT</pubDate></item><item><title>ICU Collation Version Drift: Keď Upgrade Databázy Rozbije Tvoje Indexy</title><link>https://www.michal-drozd.com/sk/blog/icu-collation-version-drift/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/icu-collation-version-drift/</guid><description>Query vracia nesprávne výsledky po upgrade OS. Príčina: ICU library verzia sa zmenila, pravidlá collation sa posunuli a indexy sú teraz zoradené nekonzistentne s novým poradím.</description><pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Java Profilovanie v Hardened Kubernetes: Keď Security Blokuje Tvoj Debugger</title><link>https://www.michal-drozd.com/sk/blog/java-profiling-hardened-kubernetes/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/java-profiling-hardened-kubernetes/</guid><description>Nemôžeš pripojiť profiler k produkčnej JVM. seccomp blokuje perf_event_open, container dropol CAP_SYS_PTRACE a PodSecurityPolicy bráni privileged mode. Tu je ako profilovať aj tak.</description><pubDate>Fri, 07 Mar 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL Partial Index: Plánovač Ignoruje Tvoj Index</title><link>https://www.michal-drozd.com/sk/blog/postgresql-partial-index-planner-miss/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-partial-index-planner-miss/</guid><description>Query skenuje celú tabuľku napriek perfektnému partial indexu. Príčina: WHERE klauzula query sa presne nezhoduje s predikátom indexu, alebo štatistiky zavádzajú plánovač.</description><pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Go cgo DNS Resolution Thread Explózia: Keď net.LookupHost Spawne Tisíce Threadov</title><link>https://www.michal-drozd.com/sk/blog/go-cgo-dns-thread-explosion/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/go-cgo-dns-thread-explosion/</guid><description>Go aplikácia má zrazu 10,000 threadov konzumujúcich všetku pamäť. Príčina: cgo-based DNS resolution blokujúce v pomalých DNS prostrediach, obchádzajúce Go&apos;s goroutine scheduler.</description><pubDate>Tue, 25 Feb 2025 00:00:00 GMT</pubDate></item><item><title>eBPF Run-Queue Latency: Hľadanie Off-CPU Bottlenecku</title><link>https://www.michal-drozd.com/sk/blog/ebpf-runqueue-latency-offcpu/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/ebpf-runqueue-latency-offcpu/</guid><description>CPU využitie je nízke ale requesty sú pomalé. Skrytý vinník: čas strávený čakaním v scheduler run-queue, neviditeľný pre tradičné profilery ale viditeľný s eBPF off-CPU analýzou.</description><pubDate>Mon, 17 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Linux ARP Cache Zastarané Záznamy: Blackhole Traffic Po Failoveri</title><link>https://www.michal-drozd.com/sk/blog/linux-arp-cache-failover-stale/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/linux-arp-cache-failover-stale/</guid><description>Traffic ide na starý server po failoveri. Príčina: Linux ARP cache drží MAC adresu zlyhajúceho nodu, posiela pakety na nedosiahnuteľnú destináciu minúty.</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Gossip Protocol Ghost Nodes: IP Reuse Strašiaci Váš Cluster</title><link>https://www.michal-drozd.com/sk/blog/gossip-ghost-nodes-ip-reuse/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/gossip-ghost-nodes-ip-reuse/</guid><description>Nový node sa pripája ku clusteru ale je odmietaný. IP starého nodu je stále v blackliste failure detection gossip protokolu. Zombie membership záznam žije ďalej.</description><pubDate>Mon, 10 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Kubernetes Ghost Connections: Zastarané Conntrack DNAT Záznamy</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-conntrack-stale-dnat/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-conntrack-stale-dnat/</guid><description>Service vracia zlé pod IP po škálovaní. Príčina: Linux conntrack drží DNAT záznamy dlhšie ako existujú pody, smeruje traffic na zmazané endpointy.</description><pubDate>Wed, 05 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Dvojité Účtovanie z Idempotency Keys: Pasca Replica Lag</title><link>https://www.michal-drozd.com/sk/blog/idempotency-keys-replica-lag/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/idempotency-keys-replica-lag/</guid><description>Perfektná idempotency logika, ale zákazníci sú stále účtovaní dvakrát. Príčina: kontrola idempotency keys voči read replice ktorá je sekundy za primary počas špičiek.</description><pubDate>Wed, 29 Jan 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL Read Replica Konflikty: Prečo sa vaše dotazy rušia</title><link>https://www.michal-drozd.com/sk/blog/postgresql-read-replica-conflicts/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-read-replica-conflicts/</guid><description>Dotazy na read replikách zlyhávajú s &apos;canceling statement due to conflict with recovery&apos;. Riešenie závisí od toho, ktorý z 5 typov konfliktov máte - tu je návod ako diagnostikovať a vyriešiť každý z nich.</description><pubDate>Tue, 28 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Redis Cluster Migrácia Slotov: Dočasná Explózia Pamäte</title><link>https://www.michal-drozd.com/sk/blog/redis-cluster-slot-migration-memory/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/redis-cluster-slot-migration-memory/</guid><description>Redis nody OOMKilled počas rebalancingu clustra. Príčina: migrácia slotov kopíruje kľúče do cieľa pred zmazaním zo zdroja, dočasne zdvojnásobuje využitie pamäte.</description><pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Split-Brain z Posunu Hodín Dozadu: Wall Time v Lease-Based Systémoch</title><link>https://www.michal-drozd.com/sk/blog/clock-step-backwards-split-brain/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/clock-step-backwards-split-brain/</guid><description>Dva nody súčasne veria že držia leader lease. Príčina: malá NTP korekcia hodín dozadu kombinovaná s kódom ktorý mieša wall-clock čas s duration-based timeoutmi.</description><pubDate>Wed, 22 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Java OOMKilled So Stabilným Heapom: Native Memory, Direct Buffers a glibc Arenas</title><link>https://www.michal-drozd.com/sk/blog/java-native-memory-oomkilled/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/java-native-memory-oomkilled/</guid><description>Heap metriky vyzerajú dobre, GC je spokojný, ale kontajner stále umiera. Vinník: native memory z direct buffers, JNI a glibc memory allocator fragmentácia.</description><pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Go p99 Latency Špičky: Vnorené context.WithTimeout Timer Búrky</title><link>https://www.michal-drozd.com/sk/blog/go-timer-heap-pressure/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/go-timer-heap-pressure/</guid><description>Periodické latency špičky ktoré vyzerajú ako network jitter. Skutočná príčina: vnorené timeouty vytvárajú tisíce timerov ktoré zaťažujú Go runtime timer heap a spúšťajú GC scanning.</description><pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL Serialization Failures: Viac ako len &apos;Retry&apos;</title><link>https://www.michal-drozd.com/sk/blog/postgresql-serialization-failure-retry/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-serialization-failure-retry/</guid><description>Dostávate &apos;could not serialize access due to concurrent update&apos;? Riešenie nie je len retry logika - je to pochopenie kedy použiť ktorú isolation level a ako znížiť frekvenciu konfliktov.</description><pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate></item><item><title>gRPC Keepalive Nezhoda: Transport Closing Po Idle</title><link>https://www.michal-drozd.com/sk/blog/grpc-keepalive-transport-closing/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/grpc-keepalive-transport-closing/</guid><description>gRPC spojenia sa náhodne zatvárajú s &apos;transport is closing&apos;. Príčina: klient a server keepalive nastavenia sa nezhodujú, server terminuje idle spojenia.</description><pubDate>Mon, 13 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Ghost Pod: Prečo váš Service stále posiela traffic na mŕtve endpointy</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-ghost-pod-conntrack/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-ghost-pod-conntrack/</guid><description>Náhodné ECONNRESET na niektorých nodoch. Endpointy vyzerajú správne. Vinník: conntrack NAT záznamy držia dlhodobé spojenia pripnuté k podom, ktoré už neexistujú.</description><pubDate>Sun, 05 Jan 2025 00:00:00 GMT</pubDate></item><item><title>PostgreSQL OOM by Design: work_mem × Parallel Workers × Plan Nodes</title><link>https://www.michal-drozd.com/sk/blog/postgresql-work-mem-parallel-oom/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-work-mem-parallel-oom/</guid><description>work_mem vyzerá malé na 256MB, ale parallel hash join so 4 workers naprieč 3 plan nodes používa 3GB. Tu je ako zabrániť PostgreSQL legitímne OOMnúť váš kontajner.</description><pubDate>Sat, 28 Dec 2024 00:00:00 GMT</pubDate></item><item><title>JVM Metaspace OOM v Kubernetes: Prečo MaxMetaspaceSize Nestačí</title><link>https://www.michal-drozd.com/sk/blog/jvm-metaspace-oom-kubernetes/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/jvm-metaspace-oom-kubernetes/</guid><description>Pod OOMKilled napriek nastavenému MaxMetaspaceSize. Príčina: Metaspace rastie mimo heap, container memory limit nepočíta s tým, a triedy sa neuvoľňujú.</description><pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Index Ktorý Zabil Write Performance: Strata PostgreSQL HOT Updates</title><link>https://www.michal-drozd.com/sk/blog/postgresql-hot-updates-index-pasca/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-hot-updates-index-pasca/</guid><description>Pridanie indexu pre výkon spôsobilo 10x pomalšie zápisy. Kontra-intuitívna príčina: nový index rozbil HOT updaty, meniaci lacné in-place updates na drahé full-row rewrites s masívnym bloatom.</description><pubDate>Thu, 19 Dec 2024 00:00:00 GMT</pubDate></item><item><title>PostgreSQL &apos;cached plan must not change result type&apos; Počas Zero-Downtime Migrácií</title><link>https://www.michal-drozd.com/sk/blog/postgresql-cached-plan-schema-change/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/postgresql-cached-plan-schema-change/</guid><description>Rolling deploy zlyháva s cached plan chybami po ALTER TABLE. Príčina: server-side prepared statements cachujú query plány ktoré sa rozbijú pri zmene schémy.</description><pubDate>Wed, 11 Dec 2024 00:00:00 GMT</pubDate></item><item><title>etcd Watch Replay Búrky: Keď Obrovské ConfigMapy Zabíjajú Control Plane</title><link>https://www.michal-drozd.com/sk/blog/etcd-watch-replay-burky/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/etcd-watch-replay-burky/</guid><description>Apiserver je &apos;náhodne pomalý&apos;. Príčina: veľké, často aktualizované ConfigMapy spúšťajú watch compaction, čo spôsobuje simultánny relist tisícov kontrolérov.</description><pubDate>Thu, 05 Dec 2024 00:00:00 GMT</pubDate></item><item><title>etcd Quota Alarm: Keď Váš Kubernetes Cluster Prejde do Read-Only</title><link>https://www.michal-drozd.com/sk/blog/etcd-compaction-quota-alarm/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/etcd-compaction-quota-alarm/</guid><description>Cluster prestane prijímať zápisy, pody sa nedajú naplánovať. Príčina: etcd dosiahol storage quota lebo compaction nebežal, história sa nahromadila nad limity.</description><pubDate>Wed, 27 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Kubernetes Headless Service DNS: Zastarané Záznamy Po Zmazaní Podu</title><link>https://www.michal-drozd.com/sk/blog/kubernetes-headless-service-stale-dns/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kubernetes-headless-service-stale-dns/</guid><description>Requesty idú na neexistujúce pody. Príčina: headless service DNS záznamy pretrvávajú v klient DNS cache po zmazaní podov, pred propagáciou endpoints update.</description><pubDate>Fri, 22 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Traffic Ide na Mŕtve Pody: Conntrack Zastaralé NAT Mapovanie</title><link>https://www.michal-drozd.com/sk/blog/conntrack-stale-nat-mapovanie/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/conntrack-stale-nat-mapovanie/</guid><description>Deploy spôsobuje 503 presne 2 minúty. Problém: conntrack drží NAT mapovanie na staré pod IP aj po tom čo Kubernetes odstráni endpointy.</description><pubDate>Thu, 14 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Vyčerpanie Ephemeral Portov: Node Ktorý &apos;Pokazí&apos;</title><link>https://www.michal-drozd.com/sk/blog/ephemeral-port-vycerpanie-kubernetes/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/ephemeral-port-vycerpanie-kubernetes/</guid><description>Jeden Kubernetes node začne zlyhávať pripojenia k externým službám zatiaľ čo pody vyzerajú zdravé. Skrytá príčina: sidecar proxy vyčerpávajú ephemeral porty krátkodobými spojeniami.</description><pubDate>Mon, 11 Nov 2024 00:00:00 GMT</pubDate></item><item><title>PMTU Blackholes: Keď Iba Veľké Odpovede Visia</title><link>https://www.michal-drozd.com/sk/blog/pmtu-blackhole-velke-odpovede/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/pmtu-blackhole-velke-odpovede/</guid><description>Malé API odpovede fungujú, veľké visia navždy. Príčina: ICMP &apos;Fragmentation Needed&apos; správy filtrované firewallmi, rozbíjajú Path MTU Discovery v overlay sieťach.</description><pubDate>Thu, 07 Nov 2024 00:00:00 GMT</pubDate></item><item><title>kube-proxy Mikro-Výpadky: Problém xtables Lock Contencie</title><link>https://www.michal-drozd.com/sk/blog/kube-proxy-xtables-zamok-kontencia/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/kube-proxy-xtables-zamok-kontencia/</guid><description>Náhodné 1-3 sekundové výpadky spojení počas deploymentov. CPU vyzerá v poriadku, pamäť stabilná. Skrytá príčina: iptables-restore drží xtables lock počas endpoint churnu.</description><pubDate>Mon, 04 Nov 2024 00:00:00 GMT</pubDate></item><item><title>TCP TIME_WAIT Vyčerpanie Portov: Keď Connection Pooling Nestačí</title><link>https://www.michal-drozd.com/sk/blog/tcp-time-wait-port-exhaustion/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/tcp-time-wait-port-exhaustion/</guid><description>Služba sa nemôže pripojiť k databáze - &apos;cannot assign requested address&apos;. Príčina: ephemeral porty vyčerpané tisíckami socketov v TIME_WAIT stave.</description><pubDate>Mon, 28 Oct 2024 00:00:00 GMT</pubDate></item><item><title>VXLAN Náhodné Straty Paketov: Pasca Checksum Offload</title><link>https://www.michal-drozd.com/sk/blog/vxlan-checksum-offload-straty-paketov/</link><guid isPermaLink="true">https://www.michal-drozd.com/sk/blog/vxlan-checksum-offload-straty-paketov/</guid><description>gRPC volania medzi nodmi náhodne zlyhávajú ale lokálna komunikácia funguje. Vinník: TX checksum offload poškodzuje VXLAN hlavičky na špecifických NIC driveroch.</description><pubDate>Mon, 21 Oct 2024 00:00:00 GMT</pubDate></item></channel></rss>