From a Graph to a State Machine
A graph, a directed graph, and rules on top. What a state machine is, why finite matters, and how modeling a flow this way avoids the bugs that live between loose booleans.
A collaborative blog by developers
EvolvingCode is a collaborative blog where developers share hard-earned lessons from building real software. No fluff, no tutorials - just practical insights on code quality, performance, and the problems we actually solved.
A graph, a directed graph, and rules on top. What a state machine is, why finite matters, and how modeling a flow this way avoids the bugs that live between loose booleans.
How an HTTP request and a Kafka message get traced with the native OpenTelemetry integration in Spring Boot 4, what the quickstart doesn't document, and why the backend decision (ELK, Grafana, whatever) no longer touches the application code.
Before instrumenting anything, it's worth understanding what problem observability solves and why OpenTelemetry has become the standard.
You disabled open-in-view. Now what? @EntityGraph, @Transactional, batch_fetch_size, Split Queries, and DTO Projection — measured on real PostgreSQL.
How a corruption bug looked like a gRPC problem, but was actually caused by unordered async writes during client-side file persistence.
How Spring Boot's default open-in-view setting caused a silent deadlock with virtual threads and TransactionTemplate.
You already know you need a broker. Now the question is which one — and the answer changes how you design your entire event system.
Why REST APIs are not always the best choice for heavy scheduled workloads, and when batch processing is the better architectural fit.
Your server shouldn't do everything at the same time. Understanding the real problem a message broker solves.
Software Developer
Software Developer specializing in Java backend development, Dockerized processes, and Linux-based environments. I enjoy designing reliable systems, improving performance, and turning complex workflows into maintainable solutions.
2 articles
Software Engineer
Software engineer with experience in API design and implementation, and high-performance event-driven architectures. Background in banking and logistics environments, with a focus on Domain-Driven Design, distributed observability, and AI-assisted development.
7 articles