Ako postavit Solana escrow program pre marketplace sluzby (Anchor blueprint)
Prakticka architektura Solana escrow programu pre marketplace: account model, instrukcie, bezpecnostne invarianty a rollout plan do produkcie.
Články o softvérovom vývoji, architektúre, technológiách a lekciách z praxe.
TémyPrakticka architektura Solana escrow programu pre marketplace: account model, instrukcie, bezpecnostne invarianty a rollout plan do produkcie.
Prakticky prehlad realnych Solana use-casov v roku 2026: stablecoin platby, Actions/Blinks a operacne vzory, ktore viete dodat tento kvartal.
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.
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.
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.
Jedna obrovská transakcia vie pripnúť logical replication na hodiny. Runbook na rýchlu identifikáciu, bezpečné tunenie decodingu a kontrakt na bounded transakcie.
Odhaľ breaking zmeny v API z OTel spanov, hashuj len JSON shape a zastav CI bez ukladania payloadov.
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.
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.
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.
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ý.
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.
Definuj budgety na cardinality, over ich v CI a pridaj runtime firewall, aby si zastavil explozie labelov pred produkciou.
Prometheus native histogramy vedia odpáliť pamäť, WAL aj remote_write. Návod na postupné nasadenie, budgety a konkrétne queries na verifikáciu.
PostgreSQL LISTEN/NOTIFY funguje perfektne v lokalnom testovani ale notifikacie nahodne prestanu prichodit v produkcii. Vinik: transaction pooling ticho prideluje vase spojenie niekomu inemu.
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.
Vytiahni PromQL z dashboardov a rules suborov, over selektory proti /metrics a zastav CI este pred deployom.
tcpdump ukazuje pakety ktore prichadzaju, ale aplikacia nic nevidi. Vinik: Linux reverse path filtering ticho zahadzuje pakety predtym nez dosiahnu iptables, sposobene asymetrickym routovanim.
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.
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.
Reprodukovateľný postup na diagnostiku a odstránenie checkpoint-induced latency špičiek pomocou pgbench, pg_stat_bgwriter a WAL/IO budgetu.
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.
OpenTelemetry Collector pri loade dropuje spany kvôli backpressure exportérov. Oprava cez memory_limiter, queue a batch tuning + verifikácia.
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í.
Pody zaseknuté v ContainerCreating často skrývajú stuck CSI VolumeAttachment. Runbook na diagnostiku, bezpečné detach, prevenciu data loss a alerty.
Cgroup RSS budgety, CI sampling a runtime headroom ti chytia JVM memory regresie skor, nez trafia produkciu.
Konzervatívny runbook na bezpečné odblokovanie Terminating Podov: finalizery, CSI/volume cleanup, mŕtve nody a kedy (a ako) použiť force delete.
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.
Reprodukovateľný postup ako odstrániť 502/ECONNRESET pri rolloute: readiness-driven draining, preStop, SIGTERM a merateľný drain budget.
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.
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.
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.
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.
APF vie vyhladovať Kubernetes API: kubectl visí, controllery timeoutujú a rastú 429. Runbook na izoláciu klienta, úpravu FlowSchema a verifikáciu.
ReplacingMergeTree nededuplikuje pri SELECT. Merguje eventuálne. Vaše queries vracajú duplikáty kým neprebehne background merge. Tu je riešenie.
Kafka rebalance burky vedia zhoršiť lag pri scale-out. Runbook na max.poll, heartbeat, cooperative-sticky a config diffs, ktoré stabilizujú group.
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ť.
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.
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.
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ť.
Kompletný sprievodca ako zaviesť living documentation pomocou Architecture Decision Records, C4 modelu a automatizácie v CI/CD pipeline.
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.
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.
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.
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.
Pool size 50 lebo tak to bolo vždy? Ukážem ako použiť Little's Law na výpočet optimálnej veľkosti poolu a dokážem to load testom.
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ť.
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í.
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.
Používateľ kompromitovaný, treba revokovať JWT okamžite. Ale JWT sú immutable. Porovnávam allowlist, denylist a krátku expiráciu s performance benchmarkmi.
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.
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.
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.
Vacuum beží úspešne, ale disk rastie a cache hit ratio klesá. Ukážem ako kvantifikovať HOT-update eligibility pomocou pgstattuple a optimalizovať fillfactor.
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.
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úť.
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ý.
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á.
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.
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.
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.
Heap je 50% plný ale pod dostane OOMKilled. Ukážem ako sledovať native memory (Metaspace, threads, NIO) a zabrániť container memory problémom.
Prečo má jeden pod 90% trafficu pri gRPC. Reprodukovateľný lab, riešenia od client-side LB po service mesh, a production checklist.
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.
Praktický playbook pre bezpečné databázové migrácie v produkcii. Od expand/contract patternu cez online indexy až po monitoring a rollback.
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.
Sporadické 'connection reset by peer' chyby v produkcii. Ukážem ako nesúlad keep-alive timeoutov medzi klientom a serverom toto spôsobuje a ako to opraviť.
Pridávate Redis len pre distributed locks? PostgreSQL advisory locks môžu stačiť. Porovnávam oba s failure scenármi a performance benchmarkami.
Ako bezpečne evolovať Protobuf schémy v event-driven systémoch. Pravidlá pre .proto, upcaster pattern a backward compatibility.
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.
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.
Praktický sizing guide pre tail sampling v OpenTelemetry Collector. Od decision_wait cez memory limity až po cost-benefit analýzu.
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.
Disk je na 95%, WAL adresár má 400GB. Ukážem ako replication slots bránia WAL cleanup a playbook pre prevenciu a recovery.
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.
Ako vynútiť architektonické pravidlá v CI/CD. Dependency Cruiser pre JS/TS, ArchUnit pre Java a praktické príklady konfigurácie.
Váš Redis má 4GB maxmemory ale RSS ukazuje 6GB. OOM killer zasiahne. Vysvetlím jemalloc fragmentáciu s reprodukciou a tuningom activedefrag.
Autovacuum nemôže bežať, table bloat rastie, všetko kvôli jednému 'idle in transaction' spojeniu. Tu je detekcia a kill playbook.
Kompletný návod na implementáciu idempotentných API. Od Idempotency-Key cez Redis locking až po stavový diagram spracovania.
Vaše pody robia 100 DNS queries per request. CoreDNS je bottleneck. Benchmarkujem NodeLocal DNS cache a ukážem konfiguráciu pre produkciu.
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.
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.
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.
Thread pool 200 lebo to hovorí Stack Overflow? Netflix algoritmus upravuje konkurenciu automaticky podľa latencie. Ukážem ako funguje s benchmarkmi.
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ť.
End-to-end riešenie pre lifecycle management feature flags. Od runtime metrík cez statickú analýzu až po automatické removal PR.
Reprodukovateľný lab na demonštráciu connection stormu pri K8s rolloutoch. PgBouncer, preStop hooks a jitter - praktické riešenia s benchmarkmi.
Praktická implementácia Outbox patternu v Node.js/TypeScript s PostgreSQL LISTEN/NOTIFY. Race-condition case study a production-ready riešenie.
Praktický rozbor prečo soft delete po rokoch rozbije výkon databázy. Benchmarky, partitioning riešenie a migračný checklist.
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.
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.
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č.
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's goroutine scheduler.
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.
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.
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.
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.
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.
Dotazy na read replikách zlyhávajú s 'canceling statement due to conflict with recovery'. 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.
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.
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.
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.
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.
Dostávate 'could not serialize access due to concurrent update'? Riešenie nie je len retry logika - je to pochopenie kedy použiť ktorú isolation level a ako znížiť frekvenciu konfliktov.
gRPC spojenia sa náhodne zatvárajú s 'transport is closing'. Príčina: klient a server keepalive nastavenia sa nezhodujú, server terminuje idle spojenia.
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ú.
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.
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ú.
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.
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.
Apiserver je 'náhodne pomalý'. Príčina: veľké, často aktualizované ConfigMapy spúšťajú watch compaction, čo spôsobuje simultánny relist tisícov kontrolérov.
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.
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.
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.
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.
Malé API odpovede fungujú, veľké visia navždy. Príčina: ICMP 'Fragmentation Needed' správy filtrované firewallmi, rozbíjajú Path MTU Discovery v overlay sieťach.
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.
Služba sa nemôže pripojiť k databáze - 'cannot assign requested address'. Príčina: ephemeral porty vyčerpané tisíckami socketov v TIME_WAIT stave.
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.