Brian Scalan - Monolith-ifying perfectly good microservices - Rails World 2023

Learn how Intercom transformed its monolithic architecture into a scalable mix of microservices and a single Rails app, enabling the company to handle millions of lines of code and over 800 million users while maintaining high productivity.

Key takeaways
  • Many companies start with a monolithic architecture, but this can lead to challenges as the company grows.
  • Intercom was started with a single Ruby on Rails app, but as the company grew, it became clear that a monolith wasn’t scalable.
  • Intercom decided to “monolith-ify” their microservices, focusing on building a single, scalable Rails app.
  • The company extracted billing and webhooks into standalone Java applications, allowing them to operate independently.
  • Intercom also switched to DynamoDB and AWS Lambda, and built a WebSocket service in a new Java application.
  • The company’s architecture eventually became a mix of microservices and a monolith, with the Rails app handling business logic and the other services handling specific tasks.
  • Intercom’s approach to technology is pragmatic and open to change, allowing them to adapt to new ideas and scaling requirements.
  • By focusing on shipping features and delivering value to customers, Intercom was able to maintain a high level of productivity and growth.
  • The company’s architecture evolution was not without its challenges, but ultimately allowed them to scale to millions of lines of code and over 800 million monthly active users.
  • Intercom’s approach to technology is focused on impact and shipping, and the company is open to new ideas and scaling requirements.
  • The company’s architecture is not overly complex, despite the scale of the application.
  • Intercom’s approach to technology is focused on delivering value to customers, and the company is open to new ideas and scaling requirements.