Page 6 - Monthly Archives: February 2025
-
Maxim Mironjuk
-
February 21, 2025
An API endpoint without rate-limiting is an open invitation for abuse, whether from misbehaving clients, aggressive scrapers or targeted attacks. Redis provides INCR, EXPIRE and Lua scripts as the building blocks for fixed window, sliding window and token bucket limiters that stay correct and atomic even under heavy load.
-
Maxim Mironjuk
-
February 21, 2025
Partitioning promises faster deletes and better maintainability for very large tables, but it is not a universal performance tool. RANGE, LIST and HASH partitioning solve different problems and bring their own restrictions around foreign keys, unique keys and query planning that need to be understood before adoption.
-
Maxim Mironjuk
-
February 21, 2025
Anyone who sees free -h for the first time often mistakes their system for being short on memory, because buff/cache appears as used. This article explains how the page cache puts idle RAM to work for performance, why swap is an overflow mechanism rather than primary memory, and how to read proc meminfo for an accurate picture of the real memory state.
-
Maxim Mironjuk
-
February 21, 2025
After a deployment, the full page cache is empty. The first real visitors experience load times that have nothing to do with actual shop performance. An automated warmup job in GitLab CI fills the cache with the most important pages before the first human ever opens the homepage.
-
Maxim Mironjuk
-
February 21, 2025
Controllers that write, read, transform and return data all at once are the normal state in many Symfony projects. CQRS consistently separates these responsibilities: commands change state, queries read data. The result is more maintainable, testable and scalable code.
-
Maxim Mironjuk
-
February 21, 2025
Few performance problems hit GraphQL APIs as reliably as the N+1 problem: an innocent-looking nested query triggers hundreds of individual database queries behind the scenes. The DataLoader pattern solves this systematically through batching and request-scoped caching.
-
Maxim Mironjuk
-
February 20, 2025
If you only use CSS Grid for simple columns, you leave its most powerful features unused. Tailwind CSS Grid gives you precise control over complex UI structures with subgrid, named template areas and auto-fill/auto-fit, without ever opening a dedicated CSS file.
-
Maxim Mironjuk
-
February 20, 2025
A PayPal and Adyen integration in Magento 2 is not a swap of two equivalent payment methods: client-side order creation meets server-side sessions, certificate-based signatures meet HMAC notifications. This article compares both architectures down to command class level.
-
Maxim Mironjuk
-
February 20, 2025
The Storage Manager API answers two questions that every offline application eventually faces: how much storage space is actually available to the origin, and how do you prevent the browser from simply deleting that data under storage pressure. Anyone who correctly uses quota calculation and persistence requests builds applications that avoid data loss proactively instead of explaining it after the fact.
-
Maxim Mironjuk
-
February 20, 2025
A backup that has never been tested is just a hypothesis. Bash backup scripts that combine rsync for incremental snapshots with tar for archived copies, clean up rotating backups according to a configurable retention policy, and run restore tests automatically make the difference between a data protection routine and a verified recovery process.
-