An Architect is investigating a merchant's Adobe Commerce production environment where all customer session data is randomly being lost. Customer session data has been configured to be persisted using Redis, as are all caches (except full page cache, which is handled via Varnish).
After an initial review, the Architect is able to replicate the loss of customer session data by flushing the Magento cache storage, either via the Adobe Commerce Admin Panel or running bin/magento cache: flush on the command line. Refreshing all the caches in the Adobe Commerce Admin Panel or running bin/magento cache: clean on the command line does not cause session data to be lost.
What should be the next step?
Answer : A
The issue here is that the customer session data is randomly being lost when flushing the Magento cache storage. This is because the Redis configuration for caches and session data might be using the same database number, which causes the session data to be deleted along with the caches. The solution is to check the app/etc/env.php file and make sure that the Redis configuration for caches and session data use different database numbers.This will prevent the session data from being affected by the cache operations.Reference: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/develop/deploy/redis.html?lang=en#configure-redis1
An Architect is configuring the preload.keys for Redis on an Adobe Commerce on-premise instance.
The Architect discovers that the following cache keys are loaded on each frontend request: EAV_ENTITY_TYPES, GLOBAL_PLUGIN_LIST, DB_IS_UP_TO_DATE, SYSTEM_DEFAULT.
* The id_prefix of the frontend => page_cache is set to 063_.
* The id_pref ix of frontend => default is set to 762_.
* The Architect has enabled and configured Redis L2 caching.
How should the preload.keys be configured?
A)

B)

C)

D)

Answer : C
Option C is correct because it configures the preload.keys correctly for Redis L2 caching on an Adobe Commerce on-premise instance. Redis L2 caching is a feature that allows storing the cache data in both Redis and the local file system. This way, the cache data can be loaded faster from the local storage, while Redis acts as a cache invalidation service.To use Redis L2 caching, the backend option for both frontend => page_cache and frontend => default must be set to Magento\Framework\Cache\Backend\RemoteSynchronizedCache1. To enable the preload feature, which reduces the number of requests to Redis, the preload.keys option must be specified with the cache keys that are loaded on each frontend request.However, unlike Redis L1 caching, the preload.keys must include the suffix :hash to indicate that only the hash values of the cache data are stored in Redis2. Therefore, the correct configuration for preload.keys is:
Option A is incorrect because it configures the preload.keys incorrectly for Redis L2 caching. It uses the id_prefix of frontend => page_cache (063_) instead of frontend => default (762_) for the cache keys. This will cause a mismatch between the cache keys and the cache data, and result in incorrect or missing cache data.Moreover, it does not include the suffix :hash for the preload.keys, which is required for Redis L2 caching2.
Option B is incorrect because it configures the preload.keys incorrectly for Redis L2 caching.It does not include the suffix :hash for the preload.keys, which is required for Redis L2 caching2. It also uses a wrong cache key (GLOBAL_PLUGIN_LIST) instead of GLOBAL_PLUGIN_LIST.
Option D is incorrect because it configures the preload.keys incorrectly for Redis L2 caching. It uses a wrong id_prefix (162_) instead of frontend => default (762_) for the cache keys. This will cause a mismatch between the cache keys and the cache data, and result in incorrect or missing cache data. It also uses a wrong cache key (EAV_ENTITY_TYPES) instead of EAV_ENTITY_TYPES.
1:Two-level caching | Adobe Commerce Developer Guide
2:Use Redis for default cache | Adobe Commerce Developer Guide
A merchant is using a unified website that supports native Adobe Commerce B2B and B2C with a single store view.
The merchant's objective is to display the B2B account features, such as negotiable quotes and credit limits, in the header of the site on every page for logged-in users who belong to a B2B company account.
Each B2B company possesses its unique shared catalog and customer group, while numerous customer groups for non-B2B customers undergo changes. The merchant insists that this association should not be linked to customer groups.
Which two solutions should the Architect recommend for consideration, taking into account public data and caching? (Choose two.)
Answer : B, D
Option B is a valid solution because creating a new HTTP Context variable can allow for differentiating the public content cache for users who belong to a B2B company account.The HTTP Context variable can be used to modify the output of the header block accordingly, without affecting the performance or scalability of the site1
Option D is also a valid solution because creating a new custom condition for customer segments can enable targeting users who are part of a B2B company account. The customer segment can be used to modify the output of the header block accordingly, using layout updates or dynamic blocks.This solution can also leverage the existing customer segment functionality and avoid custom coding2
Option A is not a valid solution because switching the theme based on a virtual type can cause performance issues and increase the complexity of the site maintenance.Moreover, switching the theme can affect the entire site appearance, not just the header block3
Option C is not a valid solution because using the customer session data directly to modify the output of the header block can prevent the public content cache from working properly.The customer session data is private and cannot be cached, so this solution can negatively impact the performance and scalability of the site4
Option E is not a valid solution because checking if the current user is part of a B2B company within a block class can also prevent the public content cache from working properly.The block class logic is executed on every request, so this solution can negatively impact the performance and scalability of the site5
1: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/architecture/starter-architecture.html?lang=en#http-context2: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/marketing/customer-segments.html?lang=en3: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/design/themes.html?lang=en4: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/architecture/starter-architecture.html?lang=en#private-content5: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/architecture/starter-architecture.html?lang=en#public-content
An Adobe Commerce Architect is supporting deployment and building tools for on-premises Adobe Commerce projects. The tool is executing build scripts on a centralized server and using an SSH connection to deploy to project servers.
A client reports that users cannot work with Admin Panel because the site breaks every time they change interface locale.
Considering maintainability, which solution should the Architect implement?
Answer : C
The issue here is that the site breaks every time the users change interface locale in the Admin Panel. This is because the static content for the different locales is not generated during the deployment process. The solution is to adjust the tools build script and specify required locales during *setup:static-content:deploy' command.This will ensure that the static content for all the needed locales is generated and deployed to the project servers.Reference: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/develop/deploy/static-content.html?lang=en#deploy-static-view-files1
A custom cron job has been added to an Adobe Commerce system to collect data for several reports. Its crontab. xml configuration is as follows:

The job is data intensive and runs for between 20 and 30 minutes each night.
Within a few days of deployment, it is noticed that the sites sitemap. xml file has not been updated since the new job was added.
What should be done to fix this issue?
Answer : B
The issue here is that the gather_reporting_data job is running for a long time and blocking the sitemap_generate job from running. The solution is to create a new cron group for the reporting job and specify <use_separate_process>i</use_separate_process> so that the reporting job runs in a separate process and does not block the sitemap_generate job.Reference: https://experienceleague.adobe.com/docs/commerce-cloud-service/user-guide/architecture/starter-architecture.html?lang=en#cron-groups-and-processes
An Adobe Commerce Architect is troubleshooting an issue on an Adobe Commerce Cloud project that is not yet live.
The developers copied the Staging Database to Production in readiness to Go Live. However, when the developers test their Product Import feature, the new products do not appear on the front end.
The developers suspect the Varnish Cache is not being cleared. Staging seems to work as expected. Production was working before the database migration.
What is the likely cause?
Answer : C
An Adobe Commerce store owner sets up a custom customer attribute "my.attribute".
An Architect needs to display additional content on the home page, which should display only to Customers with "my.attribute" of a certain value and be the same content for all of them. The website is running Full Page Cache.
With simplicity in mind, which two steps should the Architect take to implement these requirements? (Choose two.)
Answer : A, D
To display additional content on the home page based on a custom customer attribute, the Architect needs to do the following steps:
Add a new context value of ''my_attribute'' to Magento\Framework\App\Http\Context. This will allow the Full Page Cache to generate different versions of the page for customers with different values of ''my.attribute''. The context value can be set using a plugin on the Magento\Customer\Model\Context class.
Add a dynamic block with the content to the Home Page. A dynamic block is a type of content block that can be configured to display only to specific customer segments or conditions. The Architect can use the 'my.attribute' in the conditions of the dynamic block and assign it to the Home Page in the Content > Blocks section of the Admin Panel.Reference:
Private content | Magento 2 Developer Documentation
Dynamic Blocks | Adobe Commerce 2.3 User Guide - Magento