Triggers and procedures can have be much faster than an external system when it comes to performance simply because they are internal to the database and therefore it does not have to send data anywhere.
Whether to use them or not and in what situations is often an architecture choice though. I.e. how maintainable are they in the over all design of the system, what if the client wants to upgrade or even change the database system.
So you first must decide on what are the priorities for the design before you can decide whether to use them. For example, if you have a large amount of data and speed is the most important issue, then triggers and procedures are likely to be a good idea. But if portability, maintainability and centralised business logic are the most important features o of the design then you most likely will not want them.
Another alternative is to look at abstractions such as hibernate to decouple the database implementation from you software.