I understood from the article that workers remain working for the coop (possibly in different companies) until they retire, and then, the coop provides them with pensions; so they continue to receive value after retirement.
We solved some of this by having a "src" folder with subfolders: "functions", "triggers" and "views". Then a update-src.sql script that drops all of those and recreates them from source files. This way we can track history with git and ensure a database has the latest version of them by running the script and tests (using pgtap and pg_prove).
+1 make it per user
This decision works against zulip long term, now we have to think before inviting/adding users to our server.
Third rug pulled from under us in a year: zerotier, rport and now zulip.