Pros:
- Can query DB multiple times, conditionally, without making multiple trips to DB, since your code for a certain procedure is all in the DB.
- Procedures are accessible using any DB client.
Cons: - Version control of these procedures is not as nice as normal code. Graphile Starter has some tools for snapshotting the DB schema that help, but the DX is still not great.
- Scaling your DB is more costly than scaling compute, so from a cost/scaling perspective this might not be the best idea.