DB Fanboy
There was a project where all the business logic lived in PL/SQL. A youthful mistake.
Oracle licenses were expensive then and now. But in the early 2000s, with the lingering scent of the dot-com bubble, someone said we had spare licenses. If someone says the licenses are spare and yours to use, you use them. Complete everything inside the database. Keep the application layer thin. All logic in stored procedures. It seemed ideal.
It did work.
PL/SQL at the time couldn't return arrays. The type system was poor. We resorted to returning values by concatenating strings. Not elegant, but it worked.
The project failed.
We couldn't distribute the load off the master DB. Application servers scale out. Web servers scale out. But when all business logic sits on the database, load concentrates on the master. No offloading to read replicas. Writes, reads, and logic—all on one machine.
The master DB's CPU was the most irreplaceable resource in the entire project. In a world where everything else scaled horizontally, we had put everything on the one thing that didn't.
An expensive lesson. Though not as expensive as the Oracle licenses.