Page 8 - Monthly Archives: September 2025
-
Maxim Mironjuk
-
September 17, 2025
The edge runtime promises minimal cold start times and global distribution, but gives up central Node APIs in exchange. The Node runtime offers full compatibility, but costs latency for globally distributed users. Deciding deliberately per route gets the best out of both models.
-
Maxim Mironjuk
-
September 17, 2025
The date histogram aggregation groups documents into fixed time buckets and is the foundation of almost every time series analysis in Elasticsearch and OpenSearch. Confuse calendar_interval with fixed_interval or ignore timezones, and you get dashboards with shifted bars and wrong day boundaries, without the query ever throwing an error.
-
Maxim Mironjuk
-
September 17, 2025
A clean Symfony 7 upgrade is not a leap into the unknown, it is a repeatable process: find deprecations systematically, resolve Composer constraints in a controlled way, review config changes one by one and back every step with functional tests before the rollout goes to production.
-
Maxim Mironjuk
-
September 17, 2025
The View Transitions API delivers native, GPU-accelerated transition animations between two page states, entirely without a JavaScript animation loop. Compared to classic transition libraries, main-thread load drops noticeably, and since cross-document view transitions arrived, the same principle now works for classic multi-page navigation too.
-
Maxim Mironjuk
-
September 17, 2025
The symlink switch is not the end of a zero-downtime deployment: it is the start of a critical phase in which Redis, RabbitMQ, and OpenSearch must be compatible with the new code base. These three services are too often treated as peripheral details, even though they are frequently the root cause of post-deploy failures.
-
Maxim Mironjuk
-
September 16, 2025
Persisted queries replace the full GraphQL query text with a short hash that was registered with the server beforehand. This reduces payload size, prevents arbitrary ad hoc queries against the storefront API, and makes GraphQL requests accessible to standard CDN caching through plain GET calls.
-
Maxim Mironjuk
-
September 16, 2025
UNION and UNION ALL both combine the result sets of multiple SELECT statements into a single output, but only UNION deduplicates every single row with an implicit sort or hash step. Anyone who does not know this difference pays unnecessary compute time on every query for a deduplication that in many cases is not needed at all, because the combined result sets are already disjoint.
-
Maxim Mironjuk
-
September 16, 2025
The right tool makes the difference between developing blind and maintaining an API in a structured way. GraphiQL, Apollo Studio, GraphQL Hive and Inspector cover different phases of the API lifecycle, from exploratory development to production schema management across a team.
-
Maxim Mironjuk
-
September 16, 2025
A closure doesn't automatically carry its definition context with it when it comes to visibility. Closure::bind and bindTo let you change a closure's $this context and its scope for visibility checks explicitly, even after the fact. We show how that works in detail and where private access from closures genuinely pays off in practice.
-
Maxim Mironjuk
-
September 16, 2025
=== only compares objects by reference identity, and JSON.stringify fails on key order, maps, sets and dates. A hand written deep equality function compares values recursively by structure instead of reference and covers exactly the data types the simple approaches regularly fail on.
-