ATARC is an apex trigger framework designed to optimize apex trigger handlers/helpers execution within apex triggers to maximize resources availability and minimize utilization.
Try now and experience a smoother apex trigger handlers/helpers support, managing as atarc processes to unlock ATARC features.
![](/features/Organize.png)
Organize
Forcing apex trigger handlers/helpers to use standard structure ensure a better and cleaner code readibility. Simple abstraction yet powerful and flexible keeping your focus on the business logic.
Control
Runtime control over the Atarc Processes, easy to understand what is going on in production just by looking at the ATARC Process Settings.
![](/features/Control.png)
![](/features/AtarcAsync.png)
Better with Async
Upgrade Atarc Process to Async when applicable and improve your dml transactions performance, more room for more business automation available to use.
ATARC Features
Better estructure and organized code
By isolating specific business logic within apex handler/helper classes it helps in many aspects, easy to maintain, easy to identify what the apex handler/helper does, easy to identify where is the respective code for specific process.
Dynamic Process Injection by Configuration
Apex triggers should never be married or bound to apex handler/helper classes. By having the ability to dynamically inject what apex handler/helper class should run in runtime the apex trigger has no dependency to any apex handler/helper at all, this is one of the most powerful feature of this framework.
Execute Process Based on Running User
Executing code if user has specific profile, role, wether is in a particular group, permission set, queue or even when the user has specific field value. You can do it here.
Real time turn on/off of process
By making possible to activate or deactivate specific atarc process in real time it makes the business happy.
Order of execution
The control of knowing what code executes first, visually, it is a big deal when it comes to having a big organization with a lot of process implemented.
Catch code exceptions
Each atarc process execution is actually controlled so that if it throws an exception it's trapped and we could do whatever we want with it.
Processes in Async mode
This is very powerful also, besides allowing switch between async or synchronous in runtime, allowing for more room since another transaction will be generated out of the queueable context.
Process execution dependency
Besides process order, we can specify that if atarc process A didn't executed successfully atarc process B cannot be executed
Passing data between processes
Not only you could pass outputs between processes (atarc process A returns an output and atarc process B use it) for synchronous Atarc Processes but also you can do it for async Atarc Processes if applicable.
Control over process recursion (running more than once per transaction)
If by any reason a transaction has to run apex triggers two times or more, you can control if your Atarc Process should also be executed this many times
Bypass API
An api is available to bypass by category, object, event, or even the atarc process name. A global bypass flag is available also to prevent all the processes from being executed.
Debug different
If you use the api to write debug logs provided by the engine's trigger context, you may be able to easily turn on or off the debug on the fly.