I'm finally working on my first microservices project of my career, and so far most design decisions have been aimed at centralization (monorepo, central GraphQL API).
I'm starting to believe microservices sounds good in theory but has absolutely no business being implemented in its purest form.
Also the Make command to build the local Docker environment can take up to 15 minutes to run on a M1 Macbook Pro. And because the environment uses an AWS token that expires every day, the command needs to be ran every day you may be working on the project. This is such an incomprehensible waste to me, have I already reached the end of my career in software development?
Emily Fox likes this.
Netux
•I remember reading last year that Amazon was moving away from microservices. They make sense for distributed systems, but the micro part is widely open to interpretation.
If you have something that makes sense to spit up like that, do it, if not, of you understand it, just think of what is actually a good use case so you can speak about it without feeling like it's some mysterious paradigm.
Hypolite Petovan likes this.
Hypolite Petovan
•Shaun Griffith
•IIRC, tokens have a max lifetime of 12 hours (though that may be "once a day", depending on your use).
Why are you running
make
locally? Using GitHub or any of the other services, this can be done in the cloud too. There are various systems for service accounts / bots to run without internvention. CI/CD?I'm not sure why you need a GraphQL API? That seems to avoid the cloud and the benefits of serverless? APIs in general can be serverless lambdas.
Do you need a database? DynamoDB seems easy and cheap, not much coding, not much maintenance, compared to all the others. (Athena might be easier, but expensive in comparison.)
In a dev/staging/production scenario, that the images can just be copied to the next environment, saving hours of build time -- assuming all of the environment-specific links and such are parameterized out to env vars and such.
So, perhaps, in your first attempt, you've made several mistakes that all first-timers do? I'd suggest getting some consulting help, to avoid some of the disadvantages, and reap more of the rewards.
Best of luck.
Hypolite Petovan
•@Shaun Griffith Maybe I didn't make myself very clear: I didn't have anything to do with the initial project design decisions, I'm arriving late to the party and have to adapt to the now very rigid landscape. This includes Make commands to create and update the local Kubernetes environment, a GraphQL API and an AWS DynamoDB backend (for which we need the time-limited authentication token).
I personally am very used to PHP applications with a relational database backend, so I wouldn't have made these mistakes since I couldn't have suggested them in the first place.
Hypolite Petovan
•Shaun Griffith
•Hypolite Petovan likes this.