Page 21 - Monthly Archives: April 2026
-
Maxim Mironjuk
-
April 02, 2026
Once an application processes messages asynchronously through Symfony Messenger, a failing message is not the exception, it is the normal case: an external service becomes briefly unavailable, a database connection drops, or a worker gets restarted mid-processing. Anyone who blindly trusts the default settings either loses messages because they are given up on too early, or overloads an already struggling system with retries that fire too often. This article explains exactly how Messenger's retry strategy works, how the failed transport acts as a second safety net, and how to configure both mechanisms deliberately for a real use case.
-
Maxim Mironjuk
-
April 02, 2026
A distributed GraphQL schema without a central checkpoint will eventually be broken by a single team without anyone noticing. A GraphQL schema registry makes every schema change visible, testable, and blockable before it reaches production traffic, whether you run Apollo Studio as a managed service or Hive as a self-hosted open source alternative.
-
Maxim Mironjuk
-
April 02, 2026
The Back/Forward Cache keeps a complete page state in memory so that navigating back or forward doesn't require a full reload. This article covers common blockers that prevent bfcache, how the Chrome DevTools test tool helps track them down, and just how large the measurable performance gain actually is.
-
Maxim Mironjuk
-
April 02, 2026
Why a real DELETE is often the wrong choice for referenced data, and how to build a robust soft delete pattern with a Doctrine filter, a deletedAt column, and clean unique constraints.
-
Maxim Mironjuk
-
April 01, 2026
Running Magento and Hyvä stores without reliable end-to-end tests means trusting pure luck at checkout, in product search, and with every deployment instead of solid confidence. This article covers Cypress fundamentals for Magento frontends from the ground up: installation, configuring baseUrl and environment variables for dev, staging, and production, a clean project structure, and your first working test against a real page.
-
Maxim Mironjuk
-
April 01, 2026
Many REST APIs use HTTP as a transport protocol without ever tapping into its semantics. Resources modeled incorrectly, verbs misused, idempotency not guaranteed and status codes chosen arbitrarily, these are not questions of style but design errors with direct consequences for caching, retry logic and client implementation.
-
Maxim Mironjuk
-
April 01, 2026
Anyone testing React components that load data faces the same question: mock fetch or test against a real backend. MSW (Mock Service Worker) intercepts network requests at the protocol level, so components execute exactly the code they also run in production, while responses stay fully under control.
-
Maxim Mironjuk
-
April 01, 2026
A Playwright test that only checks CSS classes or fixed timeouts often misses the real problem in a Hyvä theme, because a large part of a component's state does not live in the visible DOM but in the reactive Alpine state behind x-data. This article shows how to query Alpine state directly through the public Alpine API, how a test can wait reliably for initialization instead of relying on fixed delays, and which pitfalls in CSP-restrictive Hyvä setups typically cause flaky tests.
-
Maxim Mironjuk
-
April 01, 2026
A test suite that formally passes with a 99 percent success rate can still hide massive problems, say if the same three tests need manual restarting every week due to genuine flakiness, or if the total runtime has quietly grown from five to forty-five minutes over months. Anyone looking exclusively at the binary green-red display of a single run misses exactly the trends that ultimately determine a test suite's actual usefulness and trustworthiness, which is why a thoughtful set of metrics beyond the pure pass-or-fail signal is necessary.
-
Maxim Mironjuk
-
April 01, 2026
Three.js weighs in at 600 KB, and tsParticles brings even more dependencies along with it. For an animated night sky or particle background you need neither. The native Canvas API with requestAnimationFrame and Alpine.js x-data delivers the same visual result in under 100 lines, with no build step, no npm, and no bundle overhead.
-