I’ve already removed SOQL queries and DML operations from loops in my Apex code. Despite that, I’m still hitting limits in real production scenarios with large datasets. The logic itself isn’t very complex, but the limits seem easy to hit. I want to understand what typically causes this after basic bulkification is done.
Bulkification solves only the most obvious limit issues. Once data volumes grow, limits are often hit due to large heap usage, expensive logic inside loops, trigger recursion, or automation chains triggered by DML. Even a single bulk-safe update can cascade into multiple Flows, triggers, and processes.
The usual fix is to reduce the total work done per transaction—filter records aggressively, avoid unnecessary field queries, and break work into asynchronous jobs when possible.
Takeaway: Governor limits are about total work, not just where SOQL and DML are placed.