Click a node to navigate. Scroll to zoom. Drag to pan.
Loading graph...
Platform Capabilities & Constraints
Salesforce architectural decisions must account for governor limits, shared resource constraints, and platform boundaries. Solutions that work within these constraints scale predictably; those that don’t hit limits in production.
All customers (tenants) share the same compute, storage, and network resources. Governor limits exist to prevent any single tenant from monopolizing those shared resources.
Figure 1. Salesforce multitenant internals showing how the kernel layer isolates tenants at the database level through OrgID partitioning. The Universal Data Dictionary stores each org’s metadata at runtime, which is why custom objects and fields are metadata records rather than actual schema changes. This enables platform upgrades without disrupting tenant customizations.
The kernel reads tenant-specific metadata from the Universal Data Dictionary (UDD) at runtime to dynamically construct each tenant’s application, business logic, and APIs. Every database query is automatically scoped by OrgID, which ensures strict tenant isolation at the data layer. Custom objects, fields, triggers, and validation rules are all stored as metadata, not compiled code. This is how Salesforce deploys platform upgrades without affecting tenant customizations.
Figure 2. Synchronous versus asynchronous governor limit comparison showing the async headroom available before going off-platform. Async provides 6x CPU time and 2x SOQL queries. The escalation path is sync, then async, then off-platform, and CTA judges expect that sequence to be followed in order.
Figure 3. On-platform versus off-platform processing options showing four on-platform tiers (declarative, custom code, async, and event-driven) alongside four off-platform categories connected via APIs. The bidirectional API arrow between the platform and off-platform systems represents the integration cost that always accompanies an off-platform decision.
Figure 4. Platform capability decision flowchart implementing the platform-first ladder within the governor limit context. Non-Salesforce users route directly off-platform; Salesforce users exhaust declarative and async options before any off-platform recommendation, with async processing as the intermediate escalation before committing to external infrastructure.
Figure 5. Async pattern selection within the platform capabilities context. Large data volume is the clearest signal for Batch Apex; small volume decisions hinge on whether state must be preserved across steps or chaining is required. Queueable is the modern default over Future Method for small-volume async work.
Standard SOQL on indexed fields only; limited filtering (composite key only). Async SOQL was retired in Summer 2023 — use Batch Apex or Bulk API 2.0 for complex queries
Both store configuration data, but they serve different purposes and deploy differently.
Feature
Custom Metadata Types
Custom Settings (Hierarchy)
Custom Settings (List)
Deployable
Yes (metadata API, change sets)
No (data, must be loaded per env)
No (data, must be loaded per env)
Packageable
Yes
No
No
SOQL queries
Static methods (getAll, getInstance) bypass SOQL engine entirely. SOQL queries on CMTs do not count against the 100-query limit in Apex but DO count against query rows