Insights
Ideas for systems that work in the real world.
Practical perspectives on Salesforce, integration, enterprise architecture and the disciplined use of AI.
Featured perspective
23 September 2026 · Data Architecture & Performance · 8 min read
Formula fields are not free computation
Formula fields remove storage and update logic, but they move calculation into every read path. Treat frequently filtered, sorted and integrated values as an architectural decision.
Read the articleLatest thinking
More from JSBC Labs
A Salesforce sandbox is not a production rehearsal
Production confidence comes from layered evidence across configuration, data, identity, integrations, load and recovery—not from calling one sandbox production-like.
Your Salesforce object model is not an integration contract
Standard REST resources expose records efficiently, but enterprise consumers need a deliberate contract for business intent, identity, security, errors and change.
A reusable LWC is a product—not a code snippet
Reuse creates consumers, and consumers create contracts. Govern public properties, events, configuration, accessibility and change as a product with an owner.
Queueable Apex is not a performance button
Moving work to Queueable Apex changes its transaction, timing and failure contract. Design intent, idempotency, observability and backpressure before calling System.enqueueJob.
A unified profile is not a golden record
Data 360 can link customer identities and reconcile attributes, but authority still belongs to governed source systems, explicit stewardship and purpose-specific activation rules.
A permission set called ‘Sales Manager’ is already technical debt
Job titles change faster than capabilities. Model Salesforce permission sets around reusable tasks, compose personas with groups and govern assignment as a lifecycle—not a naming exercise.
An Agentforce pass rate is meaningless without a risk model
One average score can hide the only failures that matter. Agent testing should weight business harm, verify actions and measure complete conversations—not reward plausible wording.
UNABLE_TO_LOCK_ROW is an architecture warning—not a retry instruction
Retries can absorb brief contention, but recurring Salesforce row-lock failures usually reveal a hot parent, an overlong transaction or competing workload design.
A Salesforce seasonal release is an architecture event—not admin homework
Winter ’27 is already moving through production. Release readiness should test the contracts your architecture depends on, not produce a long list of features nobody owns.
Your Salesforce CoE should reduce waiting—not create it
Good governance gives teams faster access to safe decisions. If every change waits for one committee, the operating model has centralised delay instead of expertise.
A successful deployment is not a Salesforce release
Metadata arriving in production proves that a transport step worked. A release succeeds only when dependencies, activation, adoption, signals and recovery are controlled end to end.
Bulkified Apex can still be the wrong architecture
Moving SOQL and DML outside loops prevents obvious failures. Production Apex also needs bounded work, explicit contracts, coordinated writes and a deliberate transaction model.
An Agentforce action is a production API—not a prompt trick
Once an agent can change records or call another system, action design—not conversational polish—determines whether the solution is safe to operate.
Not every customer fact belongs in Salesforce
A useful customer view is not a copy of every source system. It is a governed decision about which data to store, summarise, virtualise or archive.
Publishing a Platform Event does not complete the integration
Reliable event-driven integration begins after dispatch: with transaction semantics, replay, idempotency, observable outcomes and reconciliation.
A slow Lightning page is usually a data-design problem
Before optimising JavaScript, inspect how many data contracts the page creates, how much each one retrieves and how consistently its caches are refreshed.
Salesforce security starts with data classification—not permission sets
Access controls become guesswork when an organisation has not defined which data is sensitive, why it is retained and who is accountable for it.
Code coverage is not a Salesforce testing strategy
The platform's 75% deployment threshold measures which lines ran. It does not prove that your business processes, permissions or integrations work.
Flow versus Apex is the wrong first question
Start with automation density, transaction risk and dependency sprawl. The tool choice becomes clearer once the architecture is visible.
AI does not fix a broken process
Automation can make a business faster. It can also make a bad process fail at greater speed. The difference is the work done before the technology arrives.
The integration is the product
Customers experience one business, not a collection of platforms. Your integration architecture decides whether that experience feels connected or fragmented.
Salesforce should follow the business—not the demo
A polished demonstration can sell a feature. A successful platform must support the real operating model, including its difficult edges and exceptions.
Salesforce daily archive
Two years.
One note per day.
Explore 730 retrospective notes covering Salesforce architecture, development, seasonal releases and platform operations.
Browse the complete archive