In recent months I have had weekly wonderful Salesforce Lightning sessions together with great DPG media colleagues Walter Stolle, Pablo Sijbrants, Niels Keuning and Pieter Peers. That’s why we decided to set up any number of blogs, with this a first step in a serie. The well-known topic within IT Architecture and Domain Driven Design are Modules or Microfrontends that have been blogged about before and that is why I would like to share through this blog how a module or Microfrontend set up in a Domain Driven Design Architecture is integrated into a Salesforce Architecture. Little was written about this in Salesforce during my search and hence this blog. But only before we go into this may be useful to first have some definitions clear. How do I describe software architecture. For those who do not understand what a Domain Driven Design Architecture and module is I would like to refer to the already created blogs:…. And what does the Salesforce Architecture consist of, in particular what are the building blocks with which we will work in Salesforce Lightning, including Service Cloud where we will run our microfrontends/modules in. Now that we have somewhat of an overview of the available components and know what a module or a microfrontend is, I would like to zoom in on the considerations that have been made when designing and integrating a microfrontend/module. Finally, how we integrate the Microfrontend/ module into Salesforce with some code examples. Concluding with a number of FAQs.
What is the Salesforce software architecture?
Software Architecture can in my point of view be defined and visualized as the structure behind a piece of software and logical interconnected software components that together fulfill a common goal speaks through common language which is often communicated as standards and is closely related to culture. General global standards have been attempted to some extent to lay down ISO standards (such as: https://en.wikipedia.org/wiki/ISO/IEC_42010) that are often outdated, but very rarely implemented in practice. In practice, organisational architectural standards are often no more than informal rules in support of an evolutionairy culture homogeneous.
The Salesforce Architecture
Recent Salesforce Development shift
If I can give my own interpretation to the current development of Salesforce then when Salesforce was more of an all-round CRM system in the Cloud, it now become much more fragmented and segmented into various specialties within the organization as Marketing Cloud, Sales Cloud, Service Cloud, Commerce Cloud, Community Cloud and various other Cloud solutions with a cross platform multi device
end to end focus where each org contains such an amount of standard functionality to accelerate the time to market and standard building blocks to connect the various mentioned orgs in the Cloud through open standards such as SOA, Platform As A Service, SAAS, XML, HTTP (S), SOAP, REST to promote the interoptability between the building blocks through standard and custom APIs. The following provides a simple representation of these so called orgs which is basically an organisational unit with a standard set of functionality and or customised functionality.
How did the Salesforce software landscape continue?
If I can give my own interpretation to the current development of Salesforce then when Salesforce was more of an all-round CRM system in the Cloud, it has now become much more fragmented and segmented into various specialties within the organization of Marketing Cloud, Sales Cloud, Service Cloud , Community Cloud and various other Cloud solutions with a cross platform multi device
end to end focus where each org contains such an amount of standard functionality to accelerate the time to market and standard building blocks to connect the various mentioned orgs in the Cloud through open standards such as SOA, Platform As A Service, SAAS, XML, HTTP (S), SOAP, REST to promote the interoptability between the building blocks through standard and custom APIs. The following provides a simple representation of these orgs.
Considerations of Modules in Salesforce Architecture?
What did I had to consider when designing and integrating Microfrontends/Modules?
Integrating Modules in Salesforce
Conceptual model – Microfrontend/Module architecture
Integrating the Microfrontend/module in Salesforce Lightning
What does the module look like in practice? If you finally know, then everything is simple. In the Salesforce Lightning App – I embed a standard object for loading a VisualForce (Salesforce Classic) page for which the permissions are set accessible for the appropriate user profiles.
Seen from the browser, this object is integrated within an IFrame because I refer to another page within the same Salesforce domain within the Salesforce Lightning Service Console App so that authorization is not required here. The VisualForce page refers to its own Apex backend and this backend makes an HTTPS GET request with supplied security headers to the Module to be purchased. The example below illustrates this.