Inženýrské postřehy od SaaSForge — cloud-native architektura, observability, GenAI a tvorba SaaS produktů.

runs-on v GitHub Actions je shoda labelů, ne plánovač — takže obsazený self-hosted runner vaši úlohu prostě zařadí do fronty. Tady je routovací vzor, kterým si v běhu vybíráme volný teplý stroj, padáme na rychlý cloudový runner a nikdy build nenecháme viset.
Číst dále
Když neúnavný AI agent udělá stovku věrohodně vypadajících změn, co zabrání tomu, aby se architektura potichu rozpadla? Do backendu CrushLogu jsme zapojili ArchUnit jako spustitelný bezpečnostní pás — a pravidla našla chyby, které manuální audit přehlédl.
Číst dále
Jak nás nekompatibilita s Gradle 9 v jdt.ls, chybějící Lombok javaagent a 120sekundový timeout naučily, že náš kódovací agent ignoruje diagnostiku — a jak jsme všechny tři chyby opravili.
Číst dále
Poznatky z hackathonu, který završil několik měsíců běžící renovaci jedné služby s masivní pomocí AI — jak spouštět Claude Code agenty paralelně, klávesové zkratky, které vás udrží při smyslech, co přežije reload a status line, která vás drží v obraze.
Číst dále
Proč jsme nahradili Axon ságy — a DeadlineManager — JobStateService nad Postgresem, Spring @Scheduled sweeperem a Temporalem pro práci ve tvaru workflow, plus produkční úskalí, na které jsme cestou narazili.
Číst dále
Na Devoxx Athens jsem viděl Dagger — programovatelné CI/CD pipeliny v jazyce dle vašeho výběru, běžící identicky na notebooku i v CI. Proč je to zajímavé pro backendové integrační testy a kam se to zatím nehodí.
Číst dále
Spring Modulith umí generovat C4 component diagramy a dokumentaci modulů přímo z vašeho kódu. Zapojte to do CI, publikujte na GitHub Pages a vaše architektonická dokumentace bude vždy aktuální — bez ručního kreslení.
Číst dále
Kamal nabízí jednoduché nasazení přes SSH. Flux CD přináší self-healing GitOps na Kubernetes. Oba jsou skvělé nástroje — ale jen jeden z nich si všimne, když vám kontejner spadne ve 3 ráno.
Číst dále
Spring Modulith mění hranice modulů z ústních dohod na selhání buildu. Jak používat named interfaces, postupné vynucování a testy modularity — a proč je to ještě důležitější v éře AI-asistovaného vývoje.
Číst dále
SDKMAN byl můj hlavní správce verzí JDK celé roky. Mise dělá všechno co SDKMAN — plus Node, Python, Terraform a 500 dalších nástrojů — s jedním konfigurákem a téměř nulovou režií. Proč přecházím.
Číst dále
Praktický návod, jak naučit AI asistenta konvence vašeho kódu pomocí Claude Code Skills — znovupoužitelných Markdown šablon, které zabraňují opakovaným připomínkám při code review.
Číst dále
Část 7 série Production GraphQL — federation s GraphQL routerem, identifikace klientů, metriky na úrovni operací, klasifikace chyb, analytika schématu a optimalizace výkonu pro vaše DGS API.
Číst dále
Šestý díl série Production GraphQL — jak přenést typovou bezpečnost z DGS backendu až do Vue komponent pomocí GraphQL Code Generatoru, typed document nodes, víceúrovňových fragmentů a sdíleného balíčku operací.
Číst dále
Část 5 série Production GraphQL — unit testování DGS komponent pomocí Spocku, evoluce GraphQL schématu bez rozbití klientů a federace více služeb do jednoho unified graphu.
Číst dále
Virtuální vlákna v Javě 21 řeší škálovatelnost vláken u blokujícího kódu. WebFlux řeší backpressure, streaming a event-driven kompozici. Nejsou to konkurenti — řeší různé problémy a názor, že ‚WebFlux je mrtvý', je nebezpečně mylný.
Číst dále
Čtvrtý díl série Production GraphQL — GraphQL subscriptions přes WebSocket, volba mezi Mono a CompletableFuture pro data fetchery a AOP-based observabilita vaší GraphQL API.
Číst dále
Push-based deployment s Terraformem a Helmem přehodnocuje celou infrastrukturu kvůli jednomu container tagu. Zamčené state buckety, zaseknuté Helm releasy a vývojáři jako rukojmí. GitOps s Flux CD odděluje to, co se mění často, od toho, co se mění zřídka.
Číst dále
Třetí díl série Production GraphQL — autentizace a autorizace pomocí @PreAuthorize, sanitizace chyb proti úniku informací a limity hloubky a složitosti dotazů proti zneužití.
Číst dále
Jak testovat stavové automaty Axon 5 agregátů pomocí Spocku a AxonTestFixture — od vytváření přes guard clause odmítnutí, s praktickými vzory pro řetězení eventů, práci s timestampy a injektované služby.
Číst dále
Druhý díl série Production GraphQL — jak DGS data loadery batchují databázové dotazy a eliminují N+1 problém, kdy použít MappedBatchLoader vs BatchLoader a vzory pro stránkování v GraphQL API.
Číst dále
1. díl série Production GraphQL — jak Netflix DGS a Spring for GraphQL splynuly v jeden stack, schema-first vývojové vzory, generování kódu a třívrstvý typový systém, který udrží vaše API udržovatelné.
Číst dále
Metadata příkazů se v Axon Framework 5 automaticky nepropagují do eventů. Jak to řeší CorrelationDataProvider — a proč je to tak těžké odhalit.
Číst dále
Jak jsme debugovali občasné chyby 'Session not found' ve Spring AI MCP serveru na GKE — a proč přechod na stateless transport je správná odpověď pro Kubernetes nasazení.
Číst dále
Jak jsme migrovali z tradičního Flux bootstrap přístupu na Flux Operator na GKE Autopilot, celé řízeno Terraformem — a proč jediný FluxInstance CRD nahrazuje 660KB generovaného YAML.
Číst dále
Proč je ReactiveSecurityContextHolder vždy prázdný uvnitř Axon query handlerů, tři přístupy které jsme zvážili, a řešení pomocí Axon MetaData které udržuje query objekty čisté.
Číst dále
Praktická zkušenost s migrací CQRS/ES aplikace z Axon Framework 4.12 na 5.0 — rozsah změn API, nahrazení ság stavovými event handlery a přínos reaktivní architektury.
Číst dále
Proprietární APM agenti vytvářejí nákladné závislosti. Zjistěte, proč je OpenTelemetry lepší cesta — a jak automaticky instrumentovat vaše Kubernetes workloady pomocí Instrumentation CRD od OTel Operátoru.
Číst dále