<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Yaroslav Kladko’s Blog</title><description>Essays on distributed systems, backends, and the slow craft of software — by Yaroslav Kladko.</description><link>https://yaroslavkladko.dev</link><item><title>Real Cases — Microservices From the Field, with Code</title><link>https://yaroslavkladko.dev/real-cases-microservices-from-the-field</link><guid isPermaLink="true">https://yaroslavkladko.dev/real-cases-microservices-from-the-field</guid><description>A set of real-world microservices case studies from fintech, banking, and highload consumer products — what problem each team faced, which approach they picked, and the code that actually shipped.</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Logging &amp; Debugging Patterns — A Practical Guide</title><link>https://yaroslavkladko.dev/logging-and-debugging-patterns</link><guid isPermaLink="true">https://yaroslavkladko.dev/logging-and-debugging-patterns</guid><description>The practical patterns for logging and debugging distributed Java systems — what to log, what never to log, how to make logs useful at 3 AM, and the debugging techniques that actually work when the bug only reproduces in production.</description><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Scaling a Java Backend — Production Lessons from a Real Migration</title><link>https://yaroslavkladko.dev/scaling-java-backend-production-lessons</link><guid isPermaLink="true">https://yaroslavkladko.dev/scaling-java-backend-production-lessons</guid><description>A walkthrough of taking a monolithic Java backend through the scaling journey — what we changed at each stage, what broke, and the concrete decisions that moved the needle when traffic grew 50×.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Observability &amp; Tracing — A Production Playbook</title><link>https://yaroslavkladko.dev/observability-and-tracing</link><guid isPermaLink="true">https://yaroslavkladko.dev/observability-and-tracing</guid><description>How to actually know what your distributed system is doing in production — the three signals, the tools that compose them, and the operational discipline that turns telemetry from cost center into debugging superpower.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Real Experience — Running Production Java Microservices</title><link>https://yaroslavkladko.dev/real-experience-production-java-microservices</link><guid isPermaLink="true">https://yaroslavkladko.dev/real-experience-production-java-microservices</guid><description>The unvarnished version. What actually breaks in production Java microservices, the lessons that don&apos;t show up in architecture talks, and the small habits that separate teams that sleep at night from teams that don&apos;t.</description><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Highload Distributed Systems Architecture</title><link>https://yaroslavkladko.dev/highload-distributed-systems-architecture</link><guid isPermaLink="true">https://yaroslavkladko.dev/highload-distributed-systems-architecture</guid><description>How distributed systems stay up when traffic moves from hundreds to hundreds of thousands of requests per second — the architectural decisions, trade-offs, and failure modes that actually matter at scale.</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Real Scalable Java Backend — Lessons from Practice</title><link>https://yaroslavkladko.dev/real-scalable-java-backend</link><guid isPermaLink="true">https://yaroslavkladko.dev/real-scalable-java-backend</guid><description>What actually breaks when a Java backend grows from hundreds of users to hundreds of thousands — and the concrete patterns, code, and trade-offs that keep it standing.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Patterns in Microservices — The Ones You&apos;ll Actually Use</title><link>https://yaroslavkladko.dev/patterns-in-microservices</link><guid isPermaLink="true">https://yaroslavkladko.dev/patterns-in-microservices</guid><description>A field guide to the microservices patterns that earn their keep — what problem each one solves, when to reach for it, and what it looks like in Java code.</description><pubDate>Thu, 08 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java 26 — Early Look at the Features Coming for Backend</title><link>https://yaroslavkladko.dev/new-java-features-26</link><guid isPermaLink="true">https://yaroslavkladko.dev/new-java-features-26</guid><description>Java 26 is shaping up to be one of the more impactful non-LTS releases — pattern matching on primitives, compact headers default-on, and more. What to plan for.</description><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Java Microservices — A Practical Guide with Examples</title><link>https://yaroslavkladko.dev/java-microservices</link><guid isPermaLink="true">https://yaroslavkladko.dev/java-microservices</guid><description>How to actually build microservices on the JVM — the frameworks that matter, the patterns you&apos;ll reach for, and concrete code for a small order-processing system built with Spring Boot.</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Microservices Architecture — Foundations and Diagrams</title><link>https://yaroslavkladko.dev/microservices-architecture</link><guid isPermaLink="true">https://yaroslavkladko.dev/microservices-architecture</guid><description>A practical introduction to microservices architecture — what it is, why teams adopt it, the core building blocks, and the trade-offs you inherit the moment you move away from a monolith.</description><pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Latency Percentiles — Reading Them Right</title><link>https://yaroslavkladko.dev/latency-percentiles-guide</link><guid isPermaLink="true">https://yaroslavkladko.dev/latency-percentiles-guide</guid><description>Why averages lie, what p95/p99/p999 actually tell you, and how to pick SLO targets that match real user experience.</description><pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate></item><item><title>New in Java 25 — The Features That Matter for Backend</title><link>https://yaroslavkladko.dev/new-java-features-25</link><guid isPermaLink="true">https://yaroslavkladko.dev/new-java-features-25</guid><description>A practical tour of Java 25&apos;s backend-relevant additions — what&apos;s final, what&apos;s still preview, and which features to actually adopt in production code today.</description><pubDate>Tue, 16 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Gradle Configurations — The Part That Finally Clicks</title><link>https://yaroslavkladko.dev/gradle-configurations</link><guid isPermaLink="true">https://yaroslavkladko.dev/gradle-configurations</guid><description>What Gradle configurations actually are, why implementation vs api vs compileOnly matter, and the custom configurations that solve real production problems.</description><pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Outbox vs CDC — Picking the Right Tool</title><link>https://yaroslavkladko.dev/outbox-vs-cdc</link><guid isPermaLink="true">https://yaroslavkladko.dev/outbox-vs-cdc</guid><description>Transactional outbox and Change Data Capture solve the same problem differently. The practical trade-offs, and how to decide between them for your system.</description><pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate></item><item><title>GraalVM Native Images — When They Make Sense</title><link>https://yaroslavkladko.dev/graalvm-native-images</link><guid isPermaLink="true">https://yaroslavkladko.dev/graalvm-native-images</guid><description>The real trade-offs of native-image compilation for Java services — startup, memory, throughput — and the friction that stops most teams from adopting it universally.</description><pubDate>Fri, 27 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Gradle Multi-Module Projects — A Practical Setup</title><link>https://yaroslavkladko.dev/gradle-multimodule-setup</link><guid isPermaLink="true">https://yaroslavkladko.dev/gradle-multimodule-setup</guid><description>The structure and conventions that make Gradle multi-module projects maintainable as they grow — module boundaries, build logic reuse, and the traps to avoid.</description><pubDate>Tue, 13 May 2025 00:00:00 GMT</pubDate></item><item><title>Database per Service — What It Really Costs (and Why It&apos;s Worth It)</title><link>https://yaroslavkladko.dev/database-per-service</link><guid isPermaLink="true">https://yaroslavkladko.dev/database-per-service</guid><description>The most-preached and least-followed rule of microservices. Why teams bend it, what breaks when they do, and the practical patterns for keeping services data-independent.</description><pubDate>Tue, 08 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Virtual Threads in Practice — After Two Years in Production</title><link>https://yaroslavkladko.dev/virtual-threads-practice</link><guid isPermaLink="true">https://yaroslavkladko.dev/virtual-threads-practice</guid><description>What actually happens when you flip the virtual threads switch on a Spring Boot service — the wins, the sharp edges, and when the old thread-pool model still beats them.</description><pubDate>Tue, 11 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Backend for Frontend (BFF) — When One API Isn&apos;t Enough</title><link>https://yaroslavkladko.dev/backend-for-frontend-pattern</link><guid isPermaLink="true">https://yaroslavkladko.dev/backend-for-frontend-pattern</guid><description>The BFF pattern, why it often beats a single generic API, and how to avoid turning your BFFs into a new kind of monolith.</description><pubDate>Wed, 19 Feb 2025 00:00:00 GMT</pubDate></item><item><title>JVM Garbage Collection Tuning — G1 vs ZGC vs Parallel</title><link>https://yaroslavkladko.dev/jvm-gc-tuning</link><guid isPermaLink="true">https://yaroslavkladko.dev/jvm-gc-tuning</guid><description>Which garbage collector to pick for a Java backend in 2025, the handful of flags that actually matter, and the signs your choice is wrong.</description><pubDate>Tue, 21 Jan 2025 00:00:00 GMT</pubDate></item><item><title>SRE for Small Teams — What Actually Pays Back</title><link>https://yaroslavkladko.dev/sre-for-small-teams</link><guid isPermaLink="true">https://yaroslavkladko.dev/sre-for-small-teams</guid><description>Google&apos;s SRE book is 500 pages long and targets 100-engineer orgs. For a 10-person team, the pragmatic subset that delivers most of the benefit at a fraction of the cost.</description><pubDate>Mon, 09 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Retry Strategies Done Right</title><link>https://yaroslavkladko.dev/retry-strategies-done-right</link><guid isPermaLink="true">https://yaroslavkladko.dev/retry-strategies-done-right</guid><description>Backoff, jitter, bounded attempts, and the retriable-vs-non-retriable error classification that separates resilience from retry storms.</description><pubDate>Tue, 05 Nov 2024 00:00:00 GMT</pubDate></item><item><title>HikariCP Tuning — The Settings That Actually Matter</title><link>https://yaroslavkladko.dev/hikaricp-tuning</link><guid isPermaLink="true">https://yaroslavkladko.dev/hikaricp-tuning</guid><description>Why default HikariCP is almost right, the four settings worth tuning deliberately, and the symptoms that tell you something is off.</description><pubDate>Thu, 24 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Circuit Breakers — Beyond the Basics</title><link>https://yaroslavkladko.dev/circuit-breaker-patterns-deep</link><guid isPermaLink="true">https://yaroslavkladko.dev/circuit-breaker-patterns-deep</guid><description>How circuit breakers actually behave in production, tuning the state transitions, and the subtle interactions with retries and timeouts that cause most outages.</description><pubDate>Wed, 18 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Redis Caching Patterns That Hold Up in Production</title><link>https://yaroslavkladko.dev/redis-caching-patterns</link><guid isPermaLink="true">https://yaroslavkladko.dev/redis-caching-patterns</guid><description>Cache-aside, write-through, read-through, and the stampede protection that separates a cache from a foot-gun. With concrete Java examples.</description><pubDate>Fri, 02 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Consumer-Driven Contracts — Testing APIs Without Integration Pain</title><link>https://yaroslavkladko.dev/consumer-driven-contracts</link><guid isPermaLink="true">https://yaroslavkladko.dev/consumer-driven-contracts</guid><description>Why contract testing replaces most of your end-to-end suite, how Pact and Spring Cloud Contract fit in, and the workflow that makes teams actually adopt it.</description><pubDate>Wed, 10 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Blameless Postmortems — The Culture That Makes Them Work</title><link>https://yaroslavkladko.dev/incident-postmortem-culture</link><guid isPermaLink="true">https://yaroslavkladko.dev/incident-postmortem-culture</guid><description>What a blameless postmortem actually looks like, why &quot;blameless&quot; is harder than it sounds, and the structure that turns incidents into system improvements.</description><pubDate>Wed, 12 Jun 2024 00:00:00 GMT</pubDate></item><item><title>The Strangler Fig Pattern — Migrations That Actually Ship</title><link>https://yaroslavkladko.dev/strangler-fig-pattern</link><guid isPermaLink="true">https://yaroslavkladko.dev/strangler-fig-pattern</guid><description>How to replace legacy systems one slice at a time without a big-bang rewrite. The pattern, the gates, and the traps that stretch migrations into years.</description><pubDate>Wed, 22 May 2024 00:00:00 GMT</pubDate></item><item><title>Postgres Replication and Failover — A Practical Guide</title><link>https://yaroslavkladko.dev/postgres-replication-failover</link><guid isPermaLink="true">https://yaroslavkladko.dev/postgres-replication-failover</guid><description>How Postgres streaming replication actually works, setting up replicas that don&apos;t lag, and the failover mechanics you must rehearse before production.</description><pubDate>Tue, 16 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Building a Rate Limiter — Algorithms and Real-World Choices</title><link>https://yaroslavkladko.dev/rate-limiter-implementation</link><guid isPermaLink="true">https://yaroslavkladko.dev/rate-limiter-implementation</guid><description>Token bucket, leaky bucket, sliding window — what each actually does, and the practical implementation in distributed systems.</description><pubDate>Mon, 18 Mar 2024 00:00:00 GMT</pubDate></item><item><title>API Versioning Strategies — Picking the Right One</title><link>https://yaroslavkladko.dev/api-versioning-strategies</link><guid isPermaLink="true">https://yaroslavkladko.dev/api-versioning-strategies</guid><description>URL versioning, header versioning, media-type versioning — their real trade-offs, and how to pick a strategy you won&apos;t regret two years in.</description><pubDate>Wed, 14 Feb 2024 00:00:00 GMT</pubDate></item><item><title>Postgres at Scale — How Far You Can Push a Single Node</title><link>https://yaroslavkladko.dev/postgres-at-scale</link><guid isPermaLink="true">https://yaroslavkladko.dev/postgres-at-scale</guid><description>The optimizations that let one Postgres instance handle tens of thousands of transactions per second, and the signs that it&apos;s time to think beyond a single node.</description><pubDate>Thu, 11 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Dead Letter Queues — Handling the Unhandleable</title><link>https://yaroslavkladko.dev/dead-letter-queues</link><guid isPermaLink="true">https://yaroslavkladko.dev/dead-letter-queues</guid><description>What DLQs are, why you must have one for every message consumer, and the operational patterns that keep bad messages from blocking the good ones.</description><pubDate>Mon, 11 Dec 2023 00:00:00 GMT</pubDate></item><item><title>Multi-Tenancy — Shared, Isolated, and the Space In Between</title><link>https://yaroslavkladko.dev/multi-tenancy-patterns</link><guid isPermaLink="true">https://yaroslavkladko.dev/multi-tenancy-patterns</guid><description>The three main tenancy models, their trade-offs at scale, and a hybrid approach that often beats the pure cases.</description><pubDate>Tue, 28 Nov 2023 00:00:00 GMT</pubDate></item><item><title>Idempotency — A Practical Guide for Backend Engineers</title><link>https://yaroslavkladko.dev/idempotency-guide</link><guid isPermaLink="true">https://yaroslavkladko.dev/idempotency-guide</guid><description>Why every non-trivial backend needs idempotency keys, the common designs, and the mistakes that let duplicates slip through anyway.</description><pubDate>Sat, 07 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Java Records, Sealed Classes, and Pattern Matching</title><link>https://yaroslavkladko.dev/java-records-and-sealed</link><guid isPermaLink="true">https://yaroslavkladko.dev/java-records-and-sealed</guid><description>The modern Java data modeling trio — records for immutable data, sealed types for closed hierarchies, and pattern matching to glue them together. What it looks like in real code.</description><pubDate>Tue, 12 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Audit Log Implementation — Doing It Right the First Time</title><link>https://yaroslavkladko.dev/audit-log-implementation</link><guid isPermaLink="true">https://yaroslavkladko.dev/audit-log-implementation</guid><description>Audit logs sound trivial and get messy fast. The data model, the event capture, and the retrieval patterns that make audit logs useful instead of write-only.</description><pubDate>Thu, 24 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Kafka Schema Registry — The Missing Guardrail</title><link>https://yaroslavkladko.dev/kafka-schema-registry</link><guid isPermaLink="true">https://yaroslavkladko.dev/kafka-schema-registry</guid><description>Why you need a schema registry the moment you have more than one consumer, how Avro and Protobuf compare, and the compatibility rules that prevent production accidents.</description><pubDate>Tue, 18 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Transactional Outbox — The Pattern, End to End</title><link>https://yaroslavkladko.dev/transactional-outbox-deep</link><guid isPermaLink="true">https://yaroslavkladko.dev/transactional-outbox-deep</guid><description>Why &quot;save to DB, then publish to Kafka&quot; is almost always wrong, and the outbox pattern that fixes it — with real Java code, schema, and production considerations.</description><pubDate>Wed, 21 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Java Streams — A Deep Dive That Sticks</title><link>https://yaroslavkladko.dev/java-streams-deep-dive</link><guid isPermaLink="true">https://yaroslavkladko.dev/java-streams-deep-dive</guid><description>The mental model for Java Streams that makes them actually click — lazy evaluation, short-circuiting, the collectors you actually use, and the gotchas that bite every team.</description><pubDate>Thu, 04 May 2023 00:00:00 GMT</pubDate></item><item><title>Building a Real-Time Notification System</title><link>https://yaroslavkladko.dev/real-time-notifications</link><guid isPermaLink="true">https://yaroslavkladko.dev/real-time-notifications</guid><description>The architecture of a notification service that delivers to web, mobile, email, and SMS reliably at scale. Channel fanout, user preferences, and the delivery guarantees that matter.</description><pubDate>Tue, 18 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Saga Patterns Explained — Transactions Without Transactions</title><link>https://yaroslavkladko.dev/saga-patterns-explained</link><guid isPermaLink="true">https://yaroslavkladko.dev/saga-patterns-explained</guid><description>How to coordinate operations across services that each have their own database. Orchestrated vs choreographed sagas, compensating actions, and when to use which.</description><pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Message Brokers — An Introduction</title><link>https://yaroslavkladko.dev/message-brokers-introduction</link><guid isPermaLink="true">https://yaroslavkladko.dev/message-brokers-introduction</guid><description>What message brokers are, why distributed systems need them, and how to choose between Kafka, RabbitMQ, NATS, and friends for your use case.</description><pubDate>Fri, 17 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Kafka Streams — When It&apos;s Right and When It&apos;s Overkill</title><link>https://yaroslavkladko.dev/kafka-streams-intro</link><guid isPermaLink="true">https://yaroslavkladko.dev/kafka-streams-intro</guid><description>A pragmatic intro to Kafka Streams — what it is, what it gives you over plain consumers, and the honest operational cost.</description><pubDate>Tue, 24 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Spring Boot Essentials — What Actually Matters</title><link>https://yaroslavkladko.dev/spring-boot-essentials</link><guid isPermaLink="true">https://yaroslavkladko.dev/spring-boot-essentials</guid><description>The parts of Spring Boot you&apos;ll use on every project, the parts you&apos;ll almost never touch, and the mental model that separates the two.</description><pubDate>Mon, 14 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Event Sourcing in Practice — Lessons From Shipping It</title><link>https://yaroslavkladko.dev/event-sourcing-in-practice</link><guid isPermaLink="true">https://yaroslavkladko.dev/event-sourcing-in-practice</guid><description>The things nobody tells you about event sourcing until you&apos;ve run it in production — snapshot strategies, schema evolution, event stream hygiene, and when to walk away.</description><pubDate>Thu, 27 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Building Product Search with Elasticsearch</title><link>https://yaroslavkladko.dev/elasticsearch-for-search</link><guid isPermaLink="true">https://yaroslavkladko.dev/elasticsearch-for-search</guid><description>What actually matters when designing a product search — indexing, relevance, aggregations, and the operational realities that turn &quot;let&apos;s use Elasticsearch&quot; into a multi-month project.</description><pubDate>Sat, 17 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Dependency Injection in Java — What It Is, What It Isn&apos;t</title><link>https://yaroslavkladko.dev/dependency-injection-in-java</link><guid isPermaLink="true">https://yaroslavkladko.dev/dependency-injection-in-java</guid><description>The idea behind DI demystified — why it&apos;s the foundation of every modern Java framework, how it compares to alternatives, and the pitfalls that make teams hate it.</description><pubDate>Fri, 05 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Kafka Consumer Rebalancing — The Details That Bite</title><link>https://yaroslavkladko.dev/kafka-consumer-rebalancing</link><guid isPermaLink="true">https://yaroslavkladko.dev/kafka-consumer-rebalancing</guid><description>How consumer groups actually work, what triggers a rebalance, and the configuration that turns rebalances from outages into smooth handoffs.</description><pubDate>Tue, 26 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Event Sourcing — The Basics</title><link>https://yaroslavkladko.dev/event-sourcing-basics</link><guid isPermaLink="true">https://yaroslavkladko.dev/event-sourcing-basics</guid><description>Storing events instead of state — what it is, what it buys you, and the situations where the complexity is worth the audit trail and replayability.</description><pubDate>Wed, 15 Jun 2022 00:00:00 GMT</pubDate></item><item><title>API-First Development with OpenAPI</title><link>https://yaroslavkladko.dev/openapi-first-development</link><guid isPermaLink="true">https://yaroslavkladko.dev/openapi-first-development</guid><description>Writing the contract before the code — why it changes how teams collaborate, how it catches bugs early, and the tooling that makes it painless in Java projects.</description><pubDate>Wed, 18 May 2022 00:00:00 GMT</pubDate></item><item><title>Banking Ledger Design — Patterns That Actually Hold Up</title><link>https://yaroslavkladko.dev/banking-ledger-design</link><guid isPermaLink="true">https://yaroslavkladko.dev/banking-ledger-design</guid><description>The data models and constraints that make a banking ledger both performant and provably correct, learned the hard way over several years of building them.</description><pubDate>Fri, 29 Apr 2022 00:00:00 GMT</pubDate></item><item><title>CQRS Deep Dive — Reads and Writes Don&apos;t Have to Be the Same</title><link>https://yaroslavkladko.dev/cqrs-deep-dive</link><guid isPermaLink="true">https://yaroslavkladko.dev/cqrs-deep-dive</guid><description>Command Query Responsibility Segregation explained from first principles — the problem it solves, when it&apos;s overkill, and what it looks like in real Java systems.</description><pubDate>Tue, 22 Mar 2022 00:00:00 GMT</pubDate></item><item><title>REST vs gRPC — Choosing the Right One</title><link>https://yaroslavkladko.dev/rest-vs-grpc-choosing</link><guid isPermaLink="true">https://yaroslavkladko.dev/rest-vs-grpc-choosing</guid><description>A practical comparison of REST and gRPC for inter-service communication. When each wins, the real trade-offs, and how most production systems end up using both.</description><pubDate>Thu, 10 Feb 2022 00:00:00 GMT</pubDate></item><item><title>Kafka Partitions and Ordering — What Actually Happens</title><link>https://yaroslavkladko.dev/kafka-partitions-ordering</link><guid isPermaLink="true">https://yaroslavkladko.dev/kafka-partitions-ordering</guid><description>The mental model for Kafka partitions, how ordering works (and doesn&apos;t), and the partition-key choices that determine everything downstream.</description><pubDate>Wed, 19 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Building a Payment System on the JVM — Hard-Won Lessons</title><link>https://yaroslavkladko.dev/payment-system-on-jvm</link><guid isPermaLink="true">https://yaroslavkladko.dev/payment-system-on-jvm</guid><description>What matters when you&apos;re building the code that moves money. Idempotency, double-entry accounting, consistency, and the operational realities of payment rails.</description><pubDate>Fri, 03 Dec 2021 00:00:00 GMT</pubDate></item><item><title>Distributed Systems From Scratch — The Mental Model</title><link>https://yaroslavkladko.dev/distributed-systems-from-scratch</link><guid isPermaLink="true">https://yaroslavkladko.dev/distributed-systems-from-scratch</guid><description>The essential ideas behind distributed systems, explained without the PhD jargon. What breaks when you cross a process boundary, and the patterns that exist to handle it.</description><pubDate>Mon, 22 Nov 2021 00:00:00 GMT</pubDate></item><item><title>Domain-Driven Design for Microservices</title><link>https://yaroslavkladko.dev/domain-driven-design-for-microservices</link><guid isPermaLink="true">https://yaroslavkladko.dev/domain-driven-design-for-microservices</guid><description>Why DDD and microservices fit so well together, and the handful of DDD concepts that actually matter when you&apos;re drawing service boundaries.</description><pubDate>Wed, 08 Sep 2021 00:00:00 GMT</pubDate></item><item><title>Monolith to Microservices — The Migration Path</title><link>https://yaroslavkladko.dev/monolith-to-microservices-migration</link><guid isPermaLink="true">https://yaroslavkladko.dev/monolith-to-microservices-migration</guid><description>A practical playbook for breaking a monolith into services without stopping the product. The order of operations, the patterns that make it safe, and the traps that waste months.</description><pubDate>Mon, 14 Jun 2021 00:00:00 GMT</pubDate></item></channel></rss>