The active object pattern

To overcome the preceding race condition in concurrency, we can use the active object pattern.


The active object pattern decouples the method execution from its invocation. Mostly, the active object pattern executes in asynchronous mode. Requesters submit a task as an object in a queue, and a scheduler picks an object from the queue and executes its logic. An object in the queue knows what to do when invoked, and that's the reason why the name of the pattern is active object.

As Apex does not support multithreading, we cannot create a shareable queue, which can be accessed by multiple threads simultaneously; and therefore, we will do it with the help of the  Pending_Request__c custom object. This custom object will ...

Get Apex Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.