Magento’s software architecture
Want to learn everything about M2?
Quickly learn and reference all Magento programming basics, concepts & patterns, even with no prior experience.
What is Magento’s Software Architecture
Magento is an open-source eCommerce platform that is a highly extensible and modular framework. It’s definitely more advanced than some other open source platforms out there, but with it comes powerful customization capabilities.
Components of Magento's Tech Stack
Magento runs on the LEMP stack, which is Linux, Nginx, MySQL and PHP, along with a few other pieces of tech. Let’s go over the main layers:
- Linux: The operating system which offers excellent security, is highly stable, and supports virtually all major programming languages, including PHP.
- Nginx: The web server that handles incoming web requests and forwards them to other parts of the stack, notably PHP, for processing. It’s a much more modern web server than Apache, and is known for its high performance and low memory usage, which aligns really well with the demanding needs of a framework like Magento.
- MySQL: The database server that is by far the most widely-used and popular open-source database management system. MySQL is used by Magento to store all types of data related to the storefront, including products, cutomer data, order data, and much more.
- PHP: The backend server language that is the most widely used language on the web. Magento heavily utilizes all of PHP’s object-oriented features in the framework, such as dependency injection and interfaces.
- XML: A semantic language that is used to configure and manipulate data. Magento uses XML for creating new functionalities and extending existing ones. HTML is a subset of XML, so you are probably already familiar with its basic syntax.
- Elasticsearch: A powerful database server the powers the search engine capabilities of Magento. It provides shoppers with rapid search results that are much more accurate than other database servers, such as MySQL.
- Redis: Another open-source database, which utilizes an in-memory data structure to function both as a cache and a message broker. Magento uses Redis for caching as well as session management, and also helps Magento scale over multiple web servers.
Understanding the Importance of Each Component
These services were not chosen at random. They were carefully selected by the Magento core architecture team, because they work really well together to fulfill the needs of the demanding Magento framework. Flexibility, performance and security were the core aspects in choosing these services, and building on top of open-source frameworks creates a really extensible platform that can be fully customized, without the need to worry about software licensing, subscriptions, and so on.
While Adobe Commerce is the paid, enterprise version of Magento, it shares the exact same core codebase as Magento Open Source. Commerce is basically a license-based software agreement that is composed of a collection of premium third-party modules built by Adobe, that lay on top of Magento Open Source. Access to SaaS offerings such as Adobe Commerce Cloud, as well as support directly from the Adobe team, are two of the main selling points of Commerce. But Adobe Commerce is not a requirement to build a highly performant and available storefront, because the core that powers Adobe Commerce is really powered by the Magento Open Source core.
Recap
This is the basic underlying structure of the services that power both Magento Open Source and Adobe Commerce. The usage of open source at its core provides the extremely powerful base to build a fully extensible eCommerce storefront, without any dependency on third-party services. This architecture lays the groundwork for every other part of the application, including the filesystem and directory layout, which we’ll explore in the next lesson.