Page 18 - Monthly Archives: October 2025
-
Maxim Mironjuk
-
October 10, 2025
Most tutorials present GraphQL as inseparable from Apollo Client or urql, complete with a normalized cache, codegen, and its own provider tree. For a single, self-contained Alpine component, that entire foundation is often overkill, because at its core GraphQL is just a request format over HTTP that can be addressed just as directly with the native fetch API as any REST endpoint. This article shows how to call a GraphQL query cleanly from an Alpine component, evaluate its result, handle it on failure, and where the limits of this lean approach sit compared to a real GraphQL client.
-
Maxim Mironjuk
-
October 09, 2025
Starting a script in the background with & does not make it a daemon. A true daemon detaches completely from the terminal, prevents double starts through a PID file, reacts in a controlled way to signals like SIGTERM and SIGHUP, and writes its log somewhere that stays reachable even without a terminal.
-
Maxim Mironjuk
-
October 09, 2025
JWT or sessions for Symfony REST APIs? The answer depends on scaling requirements, revocation needs, client type, and security model. Anyone who understands the difference between stateless and stateful authentication can make the right decision for their specific use case.
-
Maxim Mironjuk
-
October 09, 2025
Read/write splitting routes writes to a single primary server and reads to several replicas in order to scale the database layer horizontally. In PHP that concretely means a connection routing layer that picks the right connection depending on the query type, and a deliberate way of handling replication lag so users do not suddenly see stale data right after a write.
-
Maxim Mironjuk
-
October 09, 2025
Good onboarding into a TypeScript codebase differs from classic ramp up: the compiler is teacher and gatekeeper at once. Teams that structure onboarding around editor setup, a tsconfig walkthrough and guided pairing save weeks of silent confusion and get new teammates measurably productive faster.
-
Maxim Mironjuk
-
October 08, 2025
Anyone debugging Magento errors constantly switches between PhpStorm and a terminal running tail -f exception.log. PhpStorm offers built-in ways to follow, filter and link log files with the source code directly in the IDE, without that context switch.
-
Maxim Mironjuk
-
October 08, 2025
Anyone who needs to reconstruct the state of a row at an arbitrary point in the past classically builds a custom audit trail table with triggers or application code. The SQL:2011 standard defines a far more robust alternative: system-versioned tables, where the database itself automatically maintains a complete history with valid time periods on every UPDATE and DELETE, with no extra application code required. SQL Server and MariaDB already implement this concept in a production-ready way, with dedicated syntax for time-travel queries. This article shows how the mechanism actually works, how it differs from hand-built audit trails, and where its limits lie.
-
Maxim Mironjuk
-
October 08, 2025
Once prices or visibility depend on customer group, a naive cache can serve the same response to different customers, with wrong prices in the worst case. This article explains how Magento's built-in GraphQL response cache already folds customer group into its cache key by default, where custom resolver-level caches can still get it wrong, and how this plays together correctly with Varnish and a CDN in front of it.
-
Maxim Mironjuk
-
October 08, 2025
fail2ban watches log files from SSH and web applications in real time, detects repeated failed logins using configurable patterns, and automatically bans the offending IP address at the firewall. This article shows how administrators can correctly configure jails for SSH and web logins, tune ban times sensibly, and monitor fail2ban activity on an ongoing basis without accidentally locking out legitimate users.
-
Maxim Mironjuk
-
October 08, 2025
Breadcrumb schema replaces the displayed URL in Google search results with a page's actual navigation path, improving click-through rate and user orientation. This article explains the BreadcrumbList structure, why it must stay tightly linked to the visible Magento breadcrumb navigation, how to hook JSON-LD generation into it cleanly via a ViewModel, and which implementation mistakes cause rich-snippet losses.
-