// the find
SFDO-Community/declarative-lookup-rollup-summaries
Declarative Lookup Rollup Summaries (DLRS) is a community built and maintained Salesforce application that allows you to create cross object roll-ups declaratively - no code! For install instructions and documentation, visit our website https://sfdo-community-sprints.github.io/DLRS-Documentation/
DLRS solves a real Salesforce platform gap: native rollup summary fields only work on master-detail relationships, not lookups. This fills that hole declaratively, letting admins define cross-object rollups (SUM, COUNT, MIN, MAX, CONCAT, etc.) without writing Apex triggers. It's been the community standard answer for this problem for over a decade.
The trigger deployment mechanism is clever — DLRS uses the Metadata API to generate and deploy Apex triggers on demand, so you get real-time rollup behavior without shipping code yourself. The three execution modes (Realtime via trigger, Scheduled via batch, Developer API for programmatic control) give you meaningful flexibility to trade consistency for governor limit headroom. Test coverage is thorough: six RollupServiceTest classes plus merge tests and DML guard tests suggest the edge cases (reparenting, record merges, bulk operations) have actually been hit in production. The fflib architecture (Apex Enterprise Patterns) keeps the Apex organized in a way that's navigable for experienced Salesforce developers.
Deploying auto-generated triggers through the Metadata API in org-to-org deployments or CI pipelines is a recurring source of pain — the generated trigger code can conflict with change sets or scratch org refreshes in ways that are hard to debug. The Aura components (optimizer, notification) haven't been migrated to LWC, which means you're maintaining two component frameworks simultaneously and the Aura code will eventually become a liability as Salesforce deprecates it further. Scheduled mode has an inherent staleness window that's easy to misconfigure — if the batch schedule falls behind under load, your rollup values go stale with no visible warning to end users. Custom Metadata Type storage for rollup definitions means you need API access or a connected app to manage rollups programmatically, which complicates automation.