We were really sure, about this it is of funny to think about now. The big system we had was becoming a problem. It took a time to make changes the code was a mess and when we tried to fix one thing something else would break. Our team was getting bigger. People were getting in each others way. Breaking it down into services seemed like the best solution. Using Node.js made sense for what we were trying to build. We already knew JavaScript so that was a plus. The team agreed with the plan. We had everything figured out. What we didn't have was a realistic picture of what running distributed services in production actually feels like. Not in a tutorial. Not in a staging environment with fake traffic. In production, with real users, real load, and real failures happening at the worst possible times. Some of these mistakes are embarrassing. All of them were expensive. Here they are. We Split Everything. Way Too Much. The first few weeks felt productive.…