Monthly Archives: May 2026
-
Maxim Mironjuk
-
May 10, 2026
Most applications end up with three or four separate libraries for notifications: one for email, one for Slack, one for SMS, one for push notifications. Symfony Notifier unifies every channel behind a single interface and a single dispatch method, with configurable routing, channel-specific messages and the ability to write your own bridges for internal systems.
-
Maxim Mironjuk
-
May 10, 2026
cron_schedule logs every scheduled and executed cron job in Magento and can accumulate millions of rows within a few weeks if misconfigured. Once you understand the table's status transitions, set history_cleanup_every correctly, and step in manually when needed, you prevent slow cron runs and locking problems in production.
-
Maxim Mironjuk
-
May 10, 2026
A grown PHP monolith can rarely be replaced in one big leap. Legacy PHP code can, however, be modernized in a controlled way if you identify seams, write characterization tests and gradually wrap the old code using the Strangler Fig pattern instead of replacing it in one risky rewrite.
-
Maxim Mironjuk
-
May 10, 2026
When an external REST API service responds slowly or fails completely without the client reacting, requests pile up, threads or workers block, and the outage spreads into your own application. The circuit breaker pattern breaks this chain by stopping calls to the failing service entirely after repeated failures and returning a fallback immediately instead.
-
Maxim Mironjuk
-
May 10, 2026
Anyone who installs debugging tools on a production server creates a permanent attack surface for what is really a temporary task. Temporary shell containers offer an alternative: diagnostic tools only for the duration of the diagnosis, in the right network perspective, with no residue left on the host. With docker run --rm and namespace sharing, this takes seconds.
-
Maxim Mironjuk
-
May 10, 2026
Ein Container-Stack ohne Beobachtbarkeit ist eine Blackbox: Man sieht, ob der Stack läuft, aber nicht warum er langsam ist, welcher Service fehlerhafte Antworten liefert oder wann ein Health Check still fehlschlägt. Strukturierte Logs, Prometheus-Metriken und richtig konfigurierte Health Checks machen jeden Container-Stack transparent und wartbar.
-
Maxim Mironjuk
-
May 09, 2026
No space left on device in the middle of live production is one of the most unpleasant alerts there is, because MySQL, PHP sessions and logging can all fail at once. This article delivers the complete emergency workflow for a full disk: safely and quickly reclaim space, identify the actual largest consumer, and then make sure the incident does not repeat itself.
-
Maxim Mironjuk
-
May 09, 2026
Running OPcache, Redis, Varnish and a CDN without a clear division of responsibility produces inconsistent load times and hard to reproduce bugs caused by stale data. This article explains how each layer solves a distinct problem, how invalidation works reliably across tags and TTLs, and how request locking and probabilistic early renewal prevent cache stampedes from overwhelming the origin.
-
Maxim Mironjuk
-
May 09, 2026
Live Edit mirrors HTML and CSS changes into the browser in real time, no reload button needed. For simple frontend files the effect is impressive, for build-heavy Hyva/Tailwind setups it pays to know the technique's limits.
-
Maxim Mironjuk
-
May 09, 2026
A compromised admin password is one of the most common entry points for attackers against Magento stores, because a single factor is enough to take over payment configuration, customer data and the entire store setup. This article shows how to configure the Magento_TwoFactorAuth module, which providers are available, how to enforce Two-Factor Authentication store-wide through configuration or per role, how the underlying CLI commands work, how to implement a custom TFA provider using the ProviderInterface, how to register it through di.xml, and which pitfalls typically appear when operating 2FA behind a reverse proxy, in a headless setup or on a staging environment.
-