Comment by honkycat

Comment by honkycat 3 days ago

8 replies

The one thing I would like to preserve from microservices is stuff about database table hygiene.

Large, shared database tables have been a huge issue in the last few jobs that I have had, and they are incredibly labor intensive to fix.

davnicwil 3 days ago

In my experience basically everything being good in software is downstream of good data modelling.

It's partly why I've realised more over time that learning computer science fundamentals actually ends up being super valuable.

I'm not talking about anything particularly deep either, just the very fundamentals you might come across in year one or two of a degree.

It sort of hooks back in over time as you discover that these people decades ago really got it and all you're really doing as a software engineer is rediscovering these lessons yourself, basically by thinking there's a better way, trying it, seeing it's not better, but noticing the fundamentals that are either being encouraged or violated and pulling just those back out into a simpler model.

I feel like that's mostly what's happened with the swing over into microservices and the swing back into monoliths, pulling some of the fundamentals encouraged by microservices back into monolith land but discarding all the other complexities that don't add anything.

  • asdfman123 3 days ago

    I learned this early and as a result I'm the guy who's trying to clean up other people's crap while they ship features and get promoted

devmor 3 days ago

I feel that if you have multiple sets of application logic that need to access the same data, there should be an internal API between them and the database that keeps that access to spec.

  • mlfreeman 3 days ago

    Only allow clients to execute stored procedures?

    • devmor 3 days ago

      That could certainly be one way to handle it, if your specific problem domain supports that logic being in stored procedures.

fny 3 days ago

A databases is a global variable in disguise.

zmmmmm 3 days ago

Heh, split databases is the thing I think is most problematic and the first thing I would eliminate in most microservices architectures. A huge fraction of the problems of microservices come from trying to split the data model along team structure / service domain rather than the true application / underlying business domain. It doesn't mean you shouldn't have multiple database, just the concept of splitting them arbitrarily along service lines is a huge cause of friction / impedance mismatch / overhead.

I actually like close to a full microservice architecture model, once you allow them all to share the database (possibly through a shared API layer).

asdfman123 3 days ago

Why big orgs use microservices: makes teams focused on a clear problem domain

Why small orgs use microservices: makes it nearly physically impossible to do certain classes of dumb shit