Scaling up - Implement large-scale projects on AEM Edge Delivery Services

AEM Edge Delivery Services has evolved and can be used for much more than building small microsites or corporate blog pages. But is it possible to create multisite, multilanguage projects while preserving the performance, flexibility, and ease of use of Edge Delivery Services?

This presentation aims to explore strategies for implementing complex, global, multilingual projects within AEM Edge Delivery Services. We will cover topics such as project setup for developers, content organization, translation workflows, etc., based on real projects.

Attendees will gain a clear understanding of how to approach large-scale projects and their associated challenges, as well as the benefits Edge Delivery Services projects offer.

Tad

What sort of framework have you found works when creating a multi-region or localized site using Universal-Editor-driven EDS sites?

Anian Weber - TechDivision

Most EDS projects I came across don't use and don't need a Framework. Apart from that, Preact is a great fit for EDS for complex UIs, as it doesn't require a build process.

IF

Speaking of code reuse - what about cross-platform support for content ? Creating a mobile app may require to access JSON instead of HTML. Is this possible using crosswalk ?

(see answer in talk video)
When you say that each language published content go to each language repository means JCR repository or Github repository?

Markus Haack - Adobe

"published" mean content from AEM Author (JCR) or doc-based (Sharepoint/Google) is published to Edge Delivery Services.

Beo

Can I overlay or extend a site with custom code?

Anian Weber - TechDivision

With the new "aem.live" architecture, you can build some custom logic that loads different JS files depending on some some conditions (e.g. some metadata). With the syncing of repositories, you can overwrite or customize whatever you want inside the sync process.

Does the limits in GitHub Repositories also apply to the shared repos for multiple sites? For example the 500 files per ref and 100 active refs, See https://www.aem.live/docs/limits

Markus Haack - Adobe

Yes, the are limits which apply to any Edge Delivery Services project.

Tomasz Sobczyk

What if I have a custom sharepoint url?

Markus Haack - Adobe

This works, the same. Any sharepoint collection can be connected to Edge Delivery Services. See https://www.aem.live/docs/setup-customer-sharepoint

How can we manage clients needs about URLĀ“s can we still use Sling mappings?

Markus Haack - Adobe

No Sling mapping. But a path mapping from AEM Author to Edge Delivery Services can be applied, see https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/edge-delivery/wysiwyg-authoring/path-mapping

Nitin Gupta

For repositories with uber large content - how do we scale indexing , with respect to crosswalk - the AEM authoring could still use the oak search, but how does the same translate for the Delivery site ?

(see answer in talk video)

Nilesh Mali

Is there any best plan to move existing project into this new structure?

Anian Weber - TechDivision

Have a look at this documentation: https://www.aem.live/developer/upgrade

puradawid

What is the advantage of using one repository, if there are separated folders and files for each website anyway?

Markus Haack - Adobe

The repository only contains the code base, content will be separated. The advantage is to reuse the same code base without forking the Git repository again and again.

Has Adobe in the path implement some inheritance to mantain multi brand and multisite clients? Looks very unmaintainable base code and really bad practice have a bunch of duplicated code

Anian Weber - TechDivision

Can't speak for Adobe, just a quick comment about unmaintainable & bad practice: I wouldn't consider the child GitHub repos as a duplication of code - they are just there, to get EDS to work, so to have separate sites with separate domains. No developer ever interacts with the child repos and you only have to monitor the sync process. But this should be quite robust, because you are only relying on very basic git commands and GitHub Jobs.

Tomasz Sobczyk

For Cross repo in github - we have used a service user + access token combination. In our case we kick off Workflows between repos but for your use case it should work as well (code sync)

Anian Weber - TechDivision

Thanks for the input! We didn't use a service user for some reason, but I forgot why. We'll have a look into it. Thanks!

Mariia Lukianets

How are the individual site requirements addressed in the Shared Repo setup?

Markus Haack - Adobe

Which " individual site requirements"? Individual metadata, index config, headers, CDN config etc. is all configurable via the config service.

is there a way the sub branch inherits some code from the main rempo?

Anian Weber - TechDivision

The sync process I described, is designed to work with independent GitHub repos, where the main repo syncs to the child repos. So the child repos "inherit" the code from the main repo. But you could implement your own custom sync process, that is based on different branches where each branch then syncs to another repo.

Tomasz Sobczyk

How do you deal with content refactoring in sharepoint? In aem world we use groovy scripts a lot, and that works fine with well structured content in jcr. What do you do in documents in sharepoint?

Markus Haack - Adobe

This is a tricky one :-) From our learning there is usually not soo much content restructuring and rewriting needed. Block code can be build to work with different content structures. However avoid spaghetti code, if there are too many content structures supported by one block maybe create a new block. On the content side there are different options if there is a need to rewrite word documents in bulk. Some projects to this be download, manipulating the docs locally and re-upload. Other projects use MS Power Automate for this.