Summary
In this chapter, we learnt that Apex is very different from other programming languages when it comes to handling concurrency issues. Due to these differences, we cannot use many concurrent design patterns that are accepted by the industry, in Apex. In the active object design pattern, we have used the For Update
SOQL clause to achieve a lock on a record. The standard Salesforce user interface is concurrency safe for different users but not for the same user. However, Apex is not at all concurrency safe, and we need to take extra steps to avoid these issues.
The following are the key points of our example as discussed earlier:
- This design pattern mainly consists of a queue, scheduler, and an active class as key components.
- This pattern decouples the execution method from its invocation.
- As we cannot have a shared queue in Apex, we have used a custom object pending request in our example.
- As we cannot have a scheduler run 24/7, we can run a scheduler every 10 minutes to fetch pending...