in 2011 there was a talk-server, an API that everyone would talk to to get stuff
increase in members, so needed to do more, so cooridnation needed within teams
then the team expanded again
used to be one team, and now the team needed to coordinate more and more within the team, and it was difficult to prioritize, and a lot of coordination needed within the team
the team slowed down in terms of development
then the team is split by functionality
stamp team focuses on new stamp VOIP team focuses on video
app server became a huge microservice
and its not really a microservice at all
but one square (functionality) included multiple services and multiple members
e.g. the stickershop has 20 services included in the stickershop team
now the messaging service is a 300,000 line monolith
every team moves at a different speed
development speed up
entire service could have outages people from different teams needed to solve the outage together
async RPC/REST library
central information management
armeria client doesnt need to know where the server exists url included in message
stamp ownership data is stored in REDIS redis data is used to validate the sticker information when the user buys a sticker, that data is created from scratch and placed onto the user's redis document when a user (with a large ownership of >10,000 stickers) purchases a sticker, the talk-server (API gateway) stops momentarily because it's really slow the ripple effect causes entire servies to be affected
change data structure so that the slow query would not happen introducing the circuit-breaker pattern to stop ripple effects
BUT communication quanitty would be increased