The debate between GraphQL and REST is often framed as an either-or choice, but in practice the two protocols do not have to be mutually exclusive. REST remains the pragmatic choice for simple CRUD resources and webhooks, while GraphQL earns its place on complex, aggregating read operations in the frontend. This article shows what a hybrid architecture with shared backend logic looks like in practice, what it costs the team in tooling and coordination, and when the added complexity simply is not worth it.
The Visual Merchandiser is a Commerce feature, but category merchandising rules can be technically rebuilt in Magento Open Source as well. Coupling product order to stock level, margin and sales figures requires understanding position values, plugin points on the product collection, and the effect on the catalog index.
In Magento 2, the question of REST or GraphQL is rarely purely technical. Both approaches are useful, but they fit different frontends, data flows, and team structures. Good decisions therefore come from use cases, not from API fashion.
1. What REST and GraphQL each do well in Magento 2
REST vs GraphQL Magento 2 is not a question of old versus new, but of access pattern versus access pattern. REST is strong when clear resources, established integrations, and stable endpoints are the priority. GraphQL is strong when frontends need to flexibly
A public API without rate limiting is an open invitation for abuse. Token bucket and sliding window algorithms cap the request load per client, API keys enable differentiated limits, and abuse prevention patterns detect and block malicious behavior before it hits the infrastructure.
Every session_start() call, every TLS connection, and every CSRF token generated in PHP needs random bytes from the operating system. If the kernel's collected entropy is insufficient, the affected calls block until enough random data is available, an effect that occurs especially often on virtual machines and in containers, showing up as hard to explain, sporadic latency spikes.
Custom URL schemes can be claimed by any app on the device, which opens the door to hijacking. iOS Universal Links and Android App Links solve this with a cryptographically verified domain, but they demand correct configuration on both the server and the app side. This article walks through setting up React Native deep linking properly, wiring it into React Navigation, and testing it reliably.
A single img tag with a fixed width barely covers any modern layout. Here's how to generate srcset and sizes correctly in a Hyvä theme, when a picture element is genuinely needed for art direction, and how both interact with Magento's image resize cache.
WebAssembly compiles languages like Rust or C into near-native code that runs in the browser and can noticeably speed up compute-heavy tasks. This article covers when the switch is genuinely worth it, where plain JavaScript still wins, and what a practical image-processing implementation looks like.
With the light-dark() function, a light and a dark mode color value can be specified in a single declaration, instead of maintaining two separate prefers-color-scheme blocks. The browser automatically picks whichever of the two values applies based on the currently active color-scheme, both for system preference and for a manual toggle that overrides it.
Several gigabytes of swap usage while free -h simultaneously reports plenty of free memory looks paradoxical, but is usually proactive, intentional kernel behavior rather than a fault. This guide shows how to use Pressure Stall Information, vmstat, and smaps to distinguish harmless from actually problematic swapping, what role swappiness really plays, and when MySQL buffer pool configuration is the actual cause.