4 ms·
You can still build a "monolith" but in a very modular way. Can't scale independently like microservices, but what if you don't need scale! Compile times are hi
by spectramax 6y ago
You can still build a "monolith" but in a very modular way. Can't scale independently like microservices, but what if you don't need scale! Compile times are higher but what if you don't need to compile that much code! One error can bring down all "monolith services" but what if your app is not that big!
I'd wager, something like 90% of software projects in companies can just get by with monoliths.
You know...there are monoliths that are well architected, and then there are monoliths that are developed for job security.
- xxs 6y ago>Can't scale independently like microservices, but what if you don't need scale! What do you mean? Aside from deployed codebase, I don't quite see it - if you need memory, allocate - start small/empty for any datastructure. If managed/gc setup delallocating is inherent, so no special case about freeing memory. Don't create unnecessary threads - but even then dormant threads are very cheap nowadays. There you go - it scales vertically nicely, make sure the application can scale horizontally (say, partitioning by user) and you have all the benefits with close to no drawbacks
- spectramax 6y agoYou're actually right. Just don't call the portions of the app and you can horizontally scale too.
- irshadc 6y agoWe had very similar settings where our codebase was built modular but deployed as monolith. At once we wanted to scale just the Queue processor module out of. We did deploy complete monolith and only enabled Queue processor on other machine. It did add up to extra memory & disk usage. But in the end it helped our team to deploy without going through microservice architecture.
- thatsnotmepls 6y agoNever really got this "One error can bring down all "monolith services"". Can you share one example where an error couldn't be handled gracefully in a monolith? Say if my shipping service fails for some reason, I can still fallback to a default cost in a monolith.
- stepbeek 6y agoAgreed. I've found propogating an error across multiple services to be a much harder problem than handling it with return values/exceptions in a monolith.