In day-to-day product development, locked in corporate technology constraints, there is rarely a chance to step beyond good and evil into the heat of hipster technology. But, when you yourself bear all the risks and every day of development takes money out of your own pocket, you really want to take a shortcut. At one of these moments, I decided to step into such a dark server forest, which I was somehow ashamed to think about before. Impressed by what happened, I even wanted to write an article "The End of the Hegemony of Programmers", but after six months of operation and development of the project, I realized that well, not quite the end, and there were still places in this very serverless backend where knowledge and experience.
Architecture
The first thing I did was crossed out the vendor lock fear from the list of restrictions. We still have to live up to scale for this to become a problem.
โ , devops , managed- .
, ยซ ยป, MongoDB, Stitch, Realm ( Realm, Stitch Realm, MongoDB, Inc 2019 )
Backend
:
Node Redis Server Side Rendering ( , Atlas ), SEO- .
. , , computed-runtime .
Frontend
: React + Redux + Redux-Saga + TypeScript
, , - - . , , .
, Mongo.Realm. (Google, Apple, Facebook, Email/Password ) :
(, , , , ..).
sync , push-, , ( , , ), , . , , , .
, , GraphQL.
, 100 RPS ( Node.js PM2), 200 , Mongo 500 .
Mongo.Realm , , (M1, M2, M5): , , , - aggregation-pipeline 5-10 . , ( aggregation-pipeline), , .
, 10 , , , .
Server Side Rendering , .
, (1 ยฝ ). 5 , , , SEO c first class citizen.
, 16- , 4 .
, 1,5 .