Skip to Content
Personal Insights
Author's profile photo Radu Simen

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 ?

Assigned Tags

      11 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Mustafa Bensan
      Mustafa Bensan

      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.

      Author's profile photo Martin Frick
      Martin Frick

      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.

      Author's profile photo Radu Simen
      Radu Simen
      Blog Post Author

      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

      Author's profile photo Mustafa Bensan
      Mustafa Bensan

      Thanks Radu Simen,.  If you are able to provide an example business context for each of the architecture components that would complete the picture.

      Author's profile photo Radu Simen
      Radu Simen
      Blog Post Author

      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

      Author's profile photo Maximiliano Colman
      Maximiliano Colman

      Do not forget the SAP Alert Notification Service 🙂

      Author's profile photo Radu Simen
      Radu Simen
      Blog Post Author

      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

      Author's profile photo Maximiliano Colman
      Maximiliano Colman

      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.

      Author's profile photo Radu Simen
      Radu Simen
      Blog Post Author

      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

      Author's profile photo Maximiliano Colman
      Maximiliano Colman

      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.

      Author's profile photo Radu Simen
      Radu Simen
      Blog Post Author

      that's true : done 😉