Produkty Poradenství O nás Blog Kontakt English

Blog

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

Nahrazujeme Axon ságy stavovými event handlery: co jsme postavili místo nich

Nahrazujeme Axon ságy stavovými event handlery: co jsme postavili místo nich

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.

  • Axon Framework
  • CQRS
  • Event Sourcing
  • Spring Boot
  • Java
Číst dále arrow_forward
Dagger: Slibný CI jako kód (pro backendy, ne pro mobil)

Dagger: Slibný CI jako kód (pro backendy, ne pro mobil)

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í.

  • Dagger
  • CI/CD
  • DevOps
  • Java
  • Testing
Číst dále arrow_forward
Spring Modulith v praxi: Od kódu k živým architektonickým diagramům

Spring Modulith v praxi: Od kódu k živým architektonickým diagramům

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í.

  • Spring Boot
  • Spring Modulith
  • Java
  • C4 Model
  • Architecture
  • Documentation
Číst dále arrow_forward
Kamal vs Flux CD: Jednoduchost nebo odolnost — vyberte si

Kamal vs Flux CD: Jednoduchost nebo odolnost — vyberte si

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.

  • Kamal
  • Flux CD
  • GitOps
  • Kubernetes
  • DevOps
  • Docker
Číst dále arrow_forward
Spring Modulith v praxi: Vynucování architektury v rostoucím monolitu

Spring Modulith v praxi: Vynucování architektury v rostoucím monolitu

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.

  • Spring Boot
  • Spring Modulith
  • Java
  • Architecture
  • Modular Monolith
Číst dále arrow_forward
Mise vs SDKMAN: Proč přecházím po letech s .sdkmanrc

Mise vs SDKMAN: Proč přecházím po letech s .sdkmanrc

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.

  • Mise
  • SDKMAN
  • Java
  • Developer Tools
  • DevEx
Číst dále arrow_forward
Jak používáme Claude Code Skills k formalizaci našich vývojových vzorů

Jak používáme Claude Code Skills k formalizaci našich vývojových vzorů

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.

  • Claude Code
  • AI
  • Developer Tools
  • Spring Boot
  • Vue.js
Číst dále arrow_forward
Observabilita a optimalizace vašeho GraphQL API

Observabilita a optimalizace vašeho GraphQL API

Čá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.

  • GraphQL
  • Netflix DGS
  • Observability
  • Performance
  • Federation
Číst dále arrow_forward
Typově bezpečné GraphQL na frontendu

Typově bezpečné GraphQL na frontendu

Š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í.

  • GraphQL
  • TypeScript
  • Vue.js
  • Code Generation
  • Frontend
Číst dále arrow_forward
DGS ve velkém měřítku: Testování, evoluce schématu a federation

DGS ve velkém měřítku: Testování, evoluce schématu a federation

Čá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.

  • GraphQL
  • Netflix DGS
  • Testing
  • Federation
  • Java
Číst dále arrow_forward
Virtuální vlákna nezabila WebFlux

Virtuální vlákna nezabila WebFlux

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ý.

  • Java
  • Virtual Threads
  • Spring WebFlux
  • Project Reactor
  • Spring Boot
Číst dále arrow_forward
Real-time a reaktivní vzory s Netflix DGS

Real-time a reaktivní vzory s Netflix DGS

Č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.

  • GraphQL
  • Netflix DGS
  • WebSocket
  • Spring WebFlux
  • Observability
Číst dále arrow_forward
Přestaňte bourat dům kvůli výměně nábytku: Proč je GitOps lepší než push-based deployment

Přestaňte bourat dům kvůli výměně nábytku: Proč je GitOps lepší než push-based deployment

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.

  • Flux CD
  • GitOps
  • Kubernetes
  • Terraform
  • DevOps
Číst dále arrow_forward
Zabezpečení GraphQL API s Netflix DGS

Zabezpečení GraphQL API s Netflix DGS

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í.

  • GraphQL
  • Netflix DGS
  • Spring Security
  • Java
  • API Security
Číst dále arrow_forward
Testování Axon 5 agregátů pomocí Spocku: Praktický průvodce

Testování Axon 5 agregátů pomocí Spocku: Praktický průvodce

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.

  • Axon Framework
  • CQRS
  • Event Sourcing
  • Spock
  • Testing
  • Java
Číst dále arrow_forward
Řešení N+1 problému pomocí Data Loaderů a Field Resolverů

Řešení N+1 problému pomocí Data Loaderů a Field Resolverů

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.

  • GraphQL
  • Netflix DGS
  • Spring Boot
  • Java
  • Performance
Číst dále arrow_forward
Schema-first GraphQL s Netflix DGS

Schema-first GraphQL s Netflix DGS

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é.

  • GraphQL
  • Netflix DGS
  • Spring Boot
  • Java
  • API Design
Číst dále arrow_forward
Tichá mezera v metadatech: Proč vaše Axon 5 eventy nemají atribuci uživatele

Tichá mezera v metadatech: Proč vaše Axon 5 eventy nemají atribuci uživatele

Metadata příkazů se v Axon Framework 5 automaticky nepropagují do eventů. Jak to řeší CorrelationDataProvider — a proč je to tak těžké odhalit.

  • Axon Framework
  • CQRS
  • Event Sourcing
  • Spring Boot
  • Java
Číst dále arrow_forward
Váš MCP Server funguje lokálně. Pak Kubernetes zabije session.

Váš MCP Server funguje lokálně. Pak Kubernetes zabije session.

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í.

  • MCP
  • Kubernetes
  • Spring AI
  • GKE
  • Java
Číst dále arrow_forward
Nahrazení Flux Bootstrap operátorem Flux: GitOps na autopilota

Nahrazení Flux Bootstrap operátorem Flux: GitOps na autopilota

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.

  • Flux CD
  • GitOps
  • Kubernetes
  • Terraform
  • GKE
Číst dále arrow_forward
Propagace identity uživatele v Axon 5 query handlerech

Propagace identity uživatele v Axon 5 query handlerech

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é.

  • Axon Framework
  • CQRS
  • Spring WebFlux
  • Spring Security
  • Java
Číst dále arrow_forward
Migrace z Axon Framework 4 na 5: Co jsme se naučili

Migrace z Axon Framework 4 na 5: Co jsme se naučili

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.

  • Axon Framework
  • CQRS
  • Event Sourcing
  • Spring Boot
  • Java
Číst dále arrow_forward
Proč je OpenTelemetry lepší než proprietární APM agenti

Proč je OpenTelemetry lepší než proprietární APM agenti

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.

  • OpenTelemetry
  • Observability
  • Kubernetes
  • Cloud-Native
Číst dále arrow_forward