Business logic in APOC triggers?

What is the best practise around APOC triggers:

Is it disadvised to put business logic in them?
What kinds of logic should go in them, and how much?
Will logic in there tend to grow to a maintainability burden over time?

I imagine one might have APOC triggers that fire events, which then get picked up by Kafka or similar, which trigger a Cloud Function that performs some task/query.

But I am drawn between two opposing viewpoints:

  1. It would be much more efficient to have business logic in the database layer, since then you don't need to send messages over the network (potentially back/forth to another data center, if the DB is hosted elsewhere than where the Cloud Functions run).

  2. I don't think it is wise to put business logic inside APOC triggers. Because:

  • it doesn't seem best practise to put business logic into database transaction handlers like that.
  • it requires institutional knowledge of Java (whereas one might only be using TypeScript or Go in the app/service layer).
  • it increases vendor lock-in, if one later wants to swap out the database.

What are the best practises here, both in terms of efficiency and maintainability?