Consider the following before implementing the triggers.
Upsert trigger fires on 4 different events :- before(insert, update), after (insert, update)
Merge trigger are fired on both events on delete
Field history is updated after the trigger has successfully finished processing data.
Any callout should be asynchronous so that trigger does not have to wait for the response.
A trigger cannot have a static keyword in its code.
If a trigger completes successfully the changes are committed to the database and if it fails the transaction is rolled back.