Docs Home → Atlas App Services
Atlas Triggers
On this page
Atlas Triggers execute application and database logic. Triggers can respond to events or use pre-defined schedules.
Triggers listen for events of a configured type. Each Trigger links to a specific Atlas Function. When a Trigger observes an event that matches your configuration, it "fires." The Trigger passes this event object as the argument to its linked Function.
A Trigger might fire on:
A specific operation type in a given Collection.
An authentication event, such as user creation or deletion.
A scheduled time.
App Services keeps track of the latest execution time for each Trigger.
Trigger Types
App Services supports three types of triggers:
Database triggers respond to document insert, changes, or deletion. You can configure Database Triggers for each linked MongoDB collection.
Authentication triggers respond to user creation, login, or deletion.
Scheduled triggers execute functions according to a pre-defined schedule.
Limitations
Atlas Function Constraints Apply
Triggers invoke Atlas Functions. This means they have the same constraints as all Atlas Functions.
Event Processing Throughput
Trigger events are added to a queue and processed when capacity becomes available. The rate at which a Trigger processes events depends on the Trigger's configuration as well as the logic in the Trigger function.
Ordered triggers process events from the queue one at a time. An unordered trigger can process up to 10,000 events concurrently.
To increase the throughput of a Trigger, you can try to:
Optimize the Trigger function's run time. For example, you might reduce the number of network calls that you make.
Reduce the size of each event object with the Trigger's projection filter. For the best performance, we recommend limiting the size of each change event to 2KB or less.
Use a match filter to reduce the number of events that the Trigger processes. For example, you might want to do something only if a specific field changed. Instead of matching every update event and checking if the field changed in your Function code, you can use the Trigger's match filter to fire only if the field is included in the event's
updateDescription.updatedFields
object.
Number of Triggers Cannot Exceed Available Change Streams
App Services limits the total number of Database Triggers. The size of your Atlas cluster drives this limit.
Each Atlas cluster tier has a maximum number of supported change streams. A Database Trigger requires its own change stream. Other App Services also use change streams, such as Atlas Device Sync. Database Triggers may not exceed the number of available change streams.
Learn more about the number of supported change streams for Atlas tiers.