What would you consider the best architecture for a demanding scalable and yet humble project (for now) that you either got assigned to or just got born out of necessity?
Whatever your answer might be, it's wrong.
By thinking in that particular way whichever your choice might be it will be knowingly a flawed choice, you can keep questioning and refactoring and probably avoid the Ouroboros effect in that respect.
By definition, there is no right or wrong choice, and there are literally millions of lines of code out there if not more, that just works, and nobody dares to question them unless they have to, but when the refactoring day comes, then you'll have to choose.
It comes down to 10 or 20 variables in total that you'll need to base your decision on. In the end, you will always be confident about your choice, and you'll make it look impressive, like a PowerPoint magician who no longer uses PowerPoint. (And if you still do, I apologize for your life choices.)
Taking those 20 variables in mind for one reason or another, we could safely start from a fact given to me by experience that you might not have all the necessary ones available, or your data quality (as the data people say today) is less than desirable, hence the usual iterations of feedback for that exact reason.
(not like it will solve it in the end, but it might)
Pennies on the dollar
So your budget is decent, you go directly for microservices and ofc you go serverless, you do go full cutting edge, a variable that your CFO will approve because if anything there might be a KPI about that one too, not part of your data, but his data that you might or might not have an idea about, you can also indeed verify that any other choice would use a bigger budget than the one you do use now because let's be honest, AWS is awesome and Google Cloud too, I like the Microsoft people too, they made Typescript.
So on paper, everything works, and a job well done, one small thing about it, there is another variable about scalability that you or someone else overlooked and because of macroeconomics that unfortunately you know nothing about, it became the next Metaverse project, because why on earth should an engineer know about low FED rates?
And as it seems, they don't.
Nevertheless, we have some new realities to deal with now, so what is the budget right now to fix this?
Not enough, and they will now require cost cuts that seem to be borderline paranoia, complete chaos and other Greek words that summarize your new reality, so now you'll try to go as open source as possible because it rocks, and it's free, and you don't have to reinvent the wheel on every corner or buy the wheel for $9.99 per hour, the problem right now is that because of some core decisions that you either chose or just followed the trend of the times refactoring will never be simple again, you've become a cog of the Ouroboros Architecture, maybe that will cause you to drop some features to cut server costs as Twitter did, maybe you'll have to drop the cloud on every level like ahrefs, at the end you will cut the costs while maintaining some form of the previous system and services to some degree.
The best thing would be to increase spending, exactly because you have to cut costs on the server level, but good luck convincing anyone after the previous decisions taken by you or someone else.
« Alors, c'est la guerre »
So what now?
What do you do after the Ouroboros is in full swing and it goes faster than the rpm in your hard drive?
Fast migration of the core product to the most inexpensive solution available, code freeze the rest, you're at war now.
Contrary to what many believe, even if you'd like to cut cloud costs to zero or your features, that might not be possible right away because the development costs are also significant in contrast to the commonality that Software is cheap.
(no it's not some people are just easy with words)
Therefore a realistic timeline has to be implemented in a starting analysis for the migration without the need to overpromise or prove anything to anyone, strict deadlines after all are an enemy of the total budget, and you'd better not do any revisions on it.
Also, the running system has to have a smooth transition because that's the core product of the company, which makes it quite important for everyone around you.
The real world kicks in.
Inflation will keep hitting cloud services like everything else and that is already happening, they were never cheap contrary to what many believed back in the day because some marketing or sales department convinced them that this was the case, hence the Ouroboros effect, the Cloud Decoupling will be the main thing to brag about in vision terms sooner rather than later, unless you do have the budget to take on market share while you do that too, in that case.. you're a rocket.
There is not a single crisis that remains a crisis for everyone, many lose but some will benefit, that's always the case, and it's not different this time.
Did you find this article valuable?
Support Nikolaos CHASANIS by becoming a sponsor. Any amount is appreciated!