Readit News logoReadit News
johnboy123 commented on Death by a Thousand Microservices   renegadeotter.com/2023/09... · Posted by u/thunderbong
jedberg · 3 years ago
I am one of the biggest proponents of microservices. I helped build the platform at Netflix, I've literally traveled around the world extolling the virtues of microservices.

But I also advise a lot of startups, and you know what I tell them nearly every time?

Build a monolith.

It's so much easier to start out with one codebase and one database, and that will scale for a while. Especially if you use a key/value store like DynamoDB (although you will lose relational functionality that can be helpful at the start). And did you know that you can deploy a monolith to Lambda and still get all the benefits of Lambda without building services?

And then, when you start growing, that's when you break out an independently scalable part of the system into a microservice (with it's own data store!). The one that may need to scale independently, or that you want to be able to deploy separately.

Microservices takes at least 25% of your engineering time just maintaining the platform. It's not worth it unless you can recoup that 25% in efficiency.

johnboy123 · 3 years ago
Just chipping in with thoughts on DynamoDB, (although I have worked on much smaller scale systems)

I am a long term dev, done lots of SQL, but for the past few years I have been using DynamoDB, and I am using it for my new startup (So I rate it).

Cons - You have to be very aware of your query patterns, and not having ad-hoc queries is a pain.

Plus sides - With on demand billing, its free if you aren't using it - Built correctly, it will scale - No Schema upgrades (This one is massive for me)

On the last point, I really do appreciate not having to worry about keeping schemas upto date across all devs and environments.

We use quite a simple pattern of a table per entity, as opposed to single table design, because it allows us to just use the API at the highest level of abstraction, where you just write your objects to dynamoDB. (You can still do lower level requests to poke values and such like)

u/johnboy123

KarmaCake day3September 12, 2023View Original