News for hackers. Stuff that matters.
Re:Software Architecture Pitfalls and How to Avoid Them by fallingknife on Thursday December 21, 2023 @10:05PM (#38730495)
In my experience the big one is, if a monolith will work, build a monolith.
Re:Software Architecture Pitfalls and How to Avoid Them by randomdata on Thursday December 21, 2023 @11:12PM (#38730861)
Unless your project complexity is on the order of blinking an LED, there isn't enough time in the day for a monolith, I'm afraid. You are going to have to build in coordination with other services (OSes, DMBSes, etc.)

It is a nice idea, but totally impractical.

Re:Software Architecture Pitfalls and How to Avoid Them by feoren on Thursday December 21, 2023 @11:18PM (#38730891)
Highlight all the code you have written / are responsible for. Have you highlighted just one single project that gets deployed as one unit? Then you have a monolith. Monolith doesn't mean you never talk to other services; it means you only own one.
Re:Software Architecture Pitfalls and How to Avoid Them by randomdata on Thursday December 21, 2023 @11:27PM (#38730938)
My coworker highlighted just one single project that gets deployed as one unit. I have a second hobby project I work on at home of which I also take ownership. He is building a monolith, I am not? Even though we are working on the exact same project?

Um. Okay. So, just so I am clear, the advice here can be rephrased as: "Save a matter of life or death, don't have hobbies"?

Re:Software Architecture Pitfalls and How to Avoid Them by feoren on Friday December 22, 2023 @12:03PM (#38736129)
I think you know what I meant. If you want exact definitions of words, study math.
Re:Software Architecture Pitfalls and How to Avoid Them by fallingknife on Friday December 22, 2023 @12:06AM (#38731141)
You can use Rails/Django/NextJS + Postgres/Mysql and while I guess that's not technically a monolith, everybody calls it that anyway because the coordination is pretty much abstracted out. And that's gonna get you pretty far. If you really wanted it to be a monolith, you could use sqlite and that would actually get you pretty far too, but why would you when postgres/mysql is just as easy and will scale so much further?
Re:Software Architecture Pitfalls and How to Avoid Them by randomdata on Friday December 22, 2023 @12:10AM (#38731158)
If we also call that a monolith, what else is there? We have fully encompassed all the options.
Re:Software Architecture Pitfalls and How to Avoid Them by fallingknife on Friday December 22, 2023 @01:28AM (#38731528)
I mean, if I say my backend is a 'Django monolith', I have run into exactly zero engineers who don't know exactly what I'm talking about.
Re:Software Architecture Pitfalls and How to Avoid Them by randomdata on Friday December 22, 2023 @02:00AM (#38731687)
> I have run into exactly zero engineers who don't know exactly what I'm talking about.

And I am afraid I haven't broken your streak. I know what Django is and what it usually entails.

I'm not sure what "monolith" adds, though. Simply saying "Django" would communicate the exact same thing, no? Is there a "Django non-monolith" that it could be confused with?

Per your definition above, it seems there is no software that is not a monolith.

Re:Software Architecture Pitfalls and How to Avoid Them by Falmarri on Friday December 22, 2023 @02:30AM (#38731852)
Yes. It could be 25 Django services
Re:Software Architecture Pitfalls and How to Avoid Them by randomdata on Friday December 22, 2023 @02:45AM (#38731933)
I have no idea what you are trying to say, but my best guess is that you are referring to a case where one Django application is coordinating with 24 other services in some fashion?

Per fallingknife's definition, that's still a monolith. No different than a Django application coordinating with MySQL. If it is that you think 25 > 1 is somehow significant, throw in Stripe, GPT, etc. in addition to MySQL. He would still call that a monolith. It's all the same.

That would not be a monolith by my definition as I say that coordination removes software from being a monolith, but we've long moved past my definition. We're only here now to understand where fallingknife's definition allows for there to be anything other than monoliths.