Personal Insights
Reference Design for SAP S4/HANA Side-by-Side Extension with SAP CAP deployed on SAP BTP CF
Introduction
S4/HANA migration of big customers is happening and by the Clean Core Policy and Best Practice recommendation significant process changes are implemented with SAP CAP Framework as Side-By-Side Extensions (Applications) that are deployed on SAP BTP (independent app domains hosted in CF Spaces)
Based on real experience I tried to create a Reference Architecture one such SAP S4/HANA Side-by-Side extension. For sure each business requirement may be different but the most complex scenario involves : async events, extension domain persistency, async worker, ui app and odata backends exposed for it, custom actions and handlers.
Design Considerations
While creating the below reference starting architecture the following ideas were considered:
- each extension lives in one Cloud Foundry space
- autoscaler is used for maximum performance and availability
- decouple the ui backend services and long running async tasks
- modern async event driven architecture is best suited
- all backend modules can share application log, destination, connectivity, xsuaa service instances
- API Service is planned to be a SAP CAP Api that serves UI and real-time requests
- Processor App is planned to execute async events for long running tasks triggered via SAP Event Mesh queues
- Autoscaler policy can be decoupled this way for real-time processing needs and for async long running tasks
TAM reference architecture for S4/HANA side-by-side extensions
Conclusions
Resulted architecture offers flexibility to apply autoscale on intensive components only and also isolates the tech stack between custom logic and ui backend so the programing language may be chosen between Java or Node.Js
Let me know what you think in comments…
Have I forgot something important ?
Hi Radu Simen,
This is a nice, concise representation of a reference architecture for S/4HANA side-by-side extensions with CAP. As a suggestion, it would be even more valuable if you explained the reference architecture in the context of a real world business use case you have implemented with this architecture.
One question for now. Are the API Service and Processor App boxes intended to represent CAP services?
Thanks,
Mustafa.
I fully agree with Mustafa's sentiment. Reference architectures are highly valuable, as they enable companies to gain insights from one another. However, the mentioned design appears to be missing a few technical and business context details and may be somewhat abstract, making it difficult for an external party to comprehend thoroughly. Maybe add some additional thoughts or highlights in the text? Cheers, Martin.
Hi Mustafa Bensan
Based on your question I updated the design considerations bullets points
Answer : SAP CAP Framework is the best way to go when developing SAP BTP apps
Thanks Radu Simen,. If you are able to provide an example business context for each of the architecture components that would complete the picture.
This is meant as Reference Architecture for any business context and scenario.
Based on context and business scenario requirements probably you'll drop lots of components if you consider them "gold plating"
You might not need the Job Scheduler as nothing needs to be triggered on time rules.
Maybe you don't want autoscale because it's not that intensively used
Also the Processor App may be deleted if there is no async long running operation in the app domain (op that takes more than 20-30 seconds to execute from request to response)
In the simplest scenario even the db container may be missing as you don't store any domain data, you only get/write to S4/HANA APIs
In most of the cases the IDP used will be the SAP Default IDP so SSO trust configuration will be dropped also
Do not forget the SAP Alert Notification Service 🙂
What will be the business/technical scenario you are thinking with this service for an extension app ?
In the S4/HANA context there can be used the Error Forwarding to Message Monitoring
https://api.sap.com/api/CPIAIFErrorPropagation/resource
https://help.sap.com/docs/SAP_S4HANA_CLOUD/a630d57fc5004c6383e7a81efee7a8bb/cebfdfcd97834e5fb7468df801457034.html
To send alert notifications triggered by the "API Service" like "Audit-App-Crash,Audit-App-Stop,Audit-App-Process-Crash" or any custom event triggered by it.
I get it now, for centralized Systems Monitoring tools.
Then both agents need it: API Service and Processor App
I updated the picture as it seems a very good addition for production landscapes
Hi Radu,
and why not adding the SAP Build Work Zone Advanced edition service for the UI app, for unique access point of all apps 😉
Kind Regards.
Max.
that's true : done 😉