News for hackers. Stuff that matters.
Re:DenoDB by TranquilMarmot on Friday June 18, 2021 @12:58PM (#27552398)
> devs started to get afraid of changing schema or code that touched database because that could create runtime errors as opposed to compilation errors. Being afraid to refactor is really bad and piles up quickly as technical debt

Yes, this definitely happens! Like somebody else said, tests can cover a lot of this. But of course they aren't perfect.

Where I'm at right now, we have multiple microservices reading from the same database so schema changes are a terrifying nightmare ("which service will break when we remove this column?!"). Unused columns have piled up over the years; in our `users` table we have almost a dozen unused columns. Onboarding new folks is always fun; "No, you don't want to look at the `role` column, you want to look at `role_id`!" Note that this issue would still be a problem if we were using an ORM (unless we had a shared library between all microservices that are talking to the database )

I've used ORMs extensively before and they do make refactoring a little bit easier, but I still would rather write raw SQL. Basically personal preference at this point; if I were to join somewhere that was using an ORM I would learn it and probably be happy with it!

Re:DenoDB by dragonwriter on Friday June 18, 2021 @01:16PM (#27552601)
> Where I'm at right now, we have multiple microservices reading from the same database

Like, all from the same base tables or each with their own schema with service-specific views? Also, isn't shared-DB integration by-definition incompatible with “microservices”, which are isolated and sovereign over their own data?

Re:DenoDB by TranquilMarmot on Sunday June 20, 2021 @12:41PM (#27571683)
From the same base tables. And yes, it is very incompatible with the definition of a microservice and causes plenty of horrible issues.

I didn't say it was good architecture. It's a remnant of when we were a startup in "move fast break things" mode (we have since been acquired) and as an org paying down tech debt has never been a priority so we're left with a lot of bad decisions that we have to live with (to the point where it's a miracle when we actually ship any meaningful features...)