Design Constraint: The Lightning Platform is an Abstraction of the Underlying Infrastructure

Another concept that Salesforce developers have to grasp is that of abstraction.

Abstraction of the underlying multitenant architecture is what gives each individual Salesforce customer the freedom to customize an instance of Salesforce and make it their own.

Not to oversimplify, but Salesforce is essentially a massive Java application sitting on top of a massive Oracle database.

This does not do the beauty and power of the underlying multi-tenant architecture justice, but for the sake of learning how the platform works, all we need to know is that Salesforce is a large scale web application built on a large scale relational database.

Why don’t we need to know specifics about the complex inner-workings of the Salesforce platform infrastructure? Because the details don’t matter.

What type of server hardware does Salesforce use? It doesn’t matter. What flavor of UNIX does Salesforce run on? It doesn’t matter.

The only thing we as developers need to know is that we never get direct access to infrastructure resources – all requests for access to processing, memory, network and database resources have to be passed through the Lightning Platform.

The Lightning Platform is an abstraction of its underlying infrastructure, and our job as Salesforce developers is to learn how to design, build and deploy procedures and applications that leverage the capabilities of the platform in an optimal and effective manner.

We can’t just “throw hardware” at code problems anymore. We have to write code that makes the most effective use of the resources that we are given.