https://www.infoq.com/news/2020/04/microservices-back-again/ BT Toggle Navigation Facilitating the spread of knowledge and innovation in professional software development More * About InfoQ * InfoQ Writers * Contribute * About C4Media * Media Kit Search [ ] [Search] Sign Up / Login Email [ ] Password [ ] [Login] Forgot password ? InfoQ Account Email [ ] [Send Recovery Email] Back to login Resend Activation [ ] [Resend] Back to login Login with: Google Microsoft Twitter Facebook Don't have an InfoQ account? Sign Up Notifications 1 Login to unlock InfoQ's new features * Stay up to date and get notified * Like your favorite content * Follow your favorite editors and peers Sign Up / Login Don't have an account? Register Here Logo - Back to homepage * En * Zhong Wen * Ri Ben * Fr * Br 1,557,098 Mar unique visitors News Articles Presentations Podcasts Guides Topics Development * Java * Kotlin * .Net * C# * Swift * Go * Rust * JavaScript Featured in Development * Panel: How to Make the Future Become Your Present This panel includes experts who have spent their careers keeping up with the changes. Sometimes, adopting new tech took more nurturing than expected to ensure it was successful. Not every decision was the right one, but each presented new learning opportunities. Panel: How to Make the Future Become Your Present All in development Architecture & Design * Architecture * Enterprise Architecture * Scalability/Performance * Design * Case Studies * Microservices * Service Mesh * Patterns * Security Featured in Architecture & Design * Software Architecture and Design InfoQ Trends Report--April 2020 An overview of how the InfoQ editorial team sees the Software Architecture and Design topic evolving in 2020, with a focus on fundamental architectural patterns, framework usage, and design skills. Software Architecture and Design InfoQ Trends Report--April 2020 All in architecture-design AI, ML and Data Engineering * Big Data * Machine Learning * NoSQL * Database * Data Analytics * Streaming Featured in AI, ML & Data Engineering * Machine Learning on Mobile and Edge Devices With TensorFlow Lite Daniel Situnayake talks about how developers can use TensorFlow Lite to build machine learning applications that run entirely on-device, and how running models on-device leads to lower latency, improved privacy, and robustness against connectivity issues. He discusses workflows, tools, and platforms that make on-device inference possible. Machine Learning on Mobile and Edge Devices With TensorFlow Lite All in ai-ml-data-eng Culture & Methods * Agile * Diversity * Leadership * Lean/Kanban * Personal Growth * Scrum * Sociocracy * Software Craftmanship * Team Collaboration * Testing * UX Featured in Culture & Methods * The Value and Purpose of a Test Coach Introducing business-oriented automated testing can involve a huge cultural change. For this we really need a Test Coach role, just like we have agile coaches and scrum masters. In this article we hear from someone living this new role, using Domain Oriented Testing on a daily basis to ensure acceptance tests have full story coverage, and unit tests verify business behavior, not implementation The Value and Purpose of a Test Coach All in culture-methods DevOps * Infrastructure * Continuous Delivery * Automation * Containers * Cloud * Observability Featured in DevOps * Building a DevSecOps Pipeline Around Your Spring Boot Application Hayley Denbraver looks into the tools, methodology, culture, and process changes to consider so that an organization is ready for the transformation needed for a DevSecOps pipeline. Building a DevSecOps Pipeline Around Your Spring Boot Application All in devops Videos with TranscriptsNew Helpful links * About InfoQ * InfoQ Writers * Contribute * About C4Media QCons from around the world QCon Software Dev Conference * * New YorkJun 15-19, 2020 * * MunichOct 19-21, 2020 * * SFNov 16-20, 2020 Choose your language * En * Zhong Wen * Ri Ben * Fr * Br Featured: More * Streaming * Machine Learning * Reactive * Microservices * Containers * Observability * NoSQL Software Trends 2020 InfoQ Homepage News To Microservices and Back Again - Why Segment Went Back to a Monolith Architecture & Design To Microservices and Back Again - Why Segment Went Back to a Monolith Like Print Bookmarks Apr 27, 2020 3 min read by * Thomas Betts While almost every engineering team has considered moving to microservices at some point, the advantages they bring come with serious trade-offs. At QCon London, Alexandra Noonan told how Segment broke up their monolith into microservices, then, a few years later, went back to a monolithic architecture. In Noonan's words, "If microservices are implemented incorrectly or used as a band-aid without addressing some of the root flaws in your system, you'll be unable to do new product development because you're drowning in the complexity." Microservices were first introduced to address the limited fault isolation of Segment's monolith. However, as the company became more successful, and integrated with more external services, the operational overhead of supporting microservices became too much to bear. The decision to move back to a monolith came with a new architecture that considered the pain points around scaling related to company growth. While making sacrifices in modularity, environmental isolation, and visibility, the monolith addressed the major issue of operational overhead, and allowed the engineering team to get back to new feature development. Noonan explained several key points in the evolution of Segment's architecture. The problems faced, and the decisions made at the time, sounded familiar to any experienced software engineer. Only with the advantage of hindsight is it clear which decisions could have been better. Noonan explained each major decision point on a timeline, and noted the pros and cons of each state of the system architecture. In 2013, Segment started with a monolithic architecture. This provided low operational overhead, but lacked environmental isolation. Segment's functionality is based around integrating data from many different providers. In the monolith, problems connecting to one provider destination could have an adverse effect on all destinations and the entire system. The lack of isolation within the monolith was addressed by moving to microservices, with one worker service per destination. Microservices also improved modularity and visibility throughout the system, allowing the team to easily see queue lengths and identify problem workers. Noonan pointed out that visibility can be built in to a monolith, but they got it for free with microservices. However, microservices came with increased operational overhead and problems around code reuse. A period of hypergrowth at Segment, around 2016-2017, added over 50 new destinations, about three per month. Having a code repository for each service was manageable for a handful of destination workers, but became a problem as the scale increased. Shared libraries were created to provide behavior that was similar for all workers. However, this created a new bottleneck, where changes to the shared code could require a week of developer effort, mostly due to testing constraints. Creating versions of the shared libraries made code changes quicker to implement, but reversed the benefit the shared code was intended to provide. Noonan pointed out the limitations of a one-size-fits-all approach to their microservices. Because there was so much effort required just to add new services, the implementations were not customized. One auto-scaling rule was applied to all services, despite each having vastly different load and CPU resource needs. Also, a proper solution for true fault isolation would have been one microservice per queue per customer, but that would have required over 10,000 microservices. The decision in 2017 to move back to a monolith considered all the trade-offs, including being comfortable with losing the benefits of microservices. The resulting architecture, named Centrifuge, is able to handle billions of messages per day sent to dozens of public APIs. There is now a single code repository, and all destination workers use the same version of the shared library. The larger worker is better able to handle spikes in load. Adding new destinations no longer adds operational overhead, and deployments only take minutes. Most important for the business, they were able to start building new products again. The team felt all these benefits were worth the reduced modularity, environmental isolation, and visibility that came for free with microservices. QCon attendees discussing the presentation sounded like typical engineers joining a project with a long history. Quick remarks such as, "Well, obviously you shouldn't do what they did," were countered with voices of experience pointing out that most decisions are made based on the best information available at the time. One of the key takeaways was that spending a few days or weeks to do more analysis could avoid a situation that takes years to correct. Rate this Article Adoption ( ) ( ) ( ) ( ) ( ) Style ( ) ( ) ( ) ( ) ( ) [ ] [Submit] [ ] [Submit] [ ] Author Contacted This content is in the Modular Monolith topic Related Topics: * Development * Architecture & Design * Modular Monolith * Microservices * Related Editorial * Related Sponsored Content + From Docker to Kubernetes: Container Networking 101 (By O'Reilly) * Related Sponsor [NGINXLogoR] NGINX Plus is the complete application delivery platform for the modern web. Start your 30 day free trial. Related Content * Monolith to Microservices: Migrating Snap's Architecture Using a Service Mesh * Panel: Microservices - Are They Still Worth It? Panel: Microservices - Are They Still Worth It? * Spring Boot Tutorial: Building Microservices Deployed to Google Cloud Spring Boot Tutorial: Building Microservices Deployed to Google Cloud * Implementing Microservices Security Patterns and Protocols with Spring Security Implementing Microservices Security Patterns and Protocols with Spring Security * Multi-Runtime Microservices Architecture Multi-Runtime Microservices Architecture * Data Modernization for Spring-Based Microservices on Pivotal Platform Data Modernization for Spring-Based Microservices on Pivotal Platform * The InfoQ eMag - Microservices: Testing, Observing, and Understanding The InfoQ eMag - Microservices: Testing, Observing, and Understanding * Beyond Microservices: Streams, State and Scalability Beyond Microservices: Streams, State and Scalability * User & Device Identity for Microservices @ Netflix Scale User & Device Identity for Microservices @ Netflix Scale * Monoliths, Microservices, Events, Functions: What It Takes to Go through the Transformation Monoliths, Microservices, Events, Functions: What It Takes to Go through the Transformation * Testing Microservices: Six Case Studies with a Combination of Testing Techniques - Part 3 Testing Microservices: Six Case Studies with a Combination of Testing Techniques - Part 3 * Instana Launches Context Guide: Enabling Visual Navigation of Infrastructure & Services * Software Architecture and Design InfoQ Trends Report--April 2020 Software Architecture and Design InfoQ Trends Report--April 2020 * Is Edge Computing a Thing? Is Edge Computing a Thing? * Graph Knowledge Base for Stateful Cloud-Native Applications Graph Knowledge Base for Stateful Cloud-Native Applications * Streaming with Spring Cloud Stream and Apache Kafka Streaming with Spring Cloud Stream and Apache Kafka * Managing Failure Modes in Microservice Architectures Managing Failure Modes in Microservice Architectures * The InfoQ eMag - The InfoQ Software Trends Report 2019: Volume 1 The InfoQ eMag - The InfoQ Software Trends Report 2019: Volume 1 * Using Metrics to Ensure Quality Applications in Pivotal Platform Using Metrics to Ensure Quality Applications in Pivotal Platform * Building Reactive Pipelines: How to Go from Scalable Apps to (Ridiculously) Scalable Systems Building Reactive Pipelines: How to Go from Scalable Apps to (Ridiculously) Scalable Systems * InfoQ's 2019, and Software Predictions for 2020 InfoQ's 2019, and Software Predictions for 2020 * Adoption of Cloud-Native Architecture, Part 1: Architecture Evolution and Maturity Adoption of Cloud-Native Architecture, Part 1: Architecture Evolution and Maturity * Q&A with Tyler Treat on Microservice Observability Q&A with Tyler Treat on Microservice Observability * Architecture Decision Records At Spotify * Obituary: Jan Stenberg * Building a DevSecOps Pipeline Around Your Spring Boot Application Building a DevSecOps Pipeline Around Your Spring Boot Application * Day 3: Security Auditing and Compliance Day 3: Security Auditing and Compliance * Google Announces Anthos Support for Multi-Cloud is Generally Available * The Value and Purpose of a Test Coach The Value and Purpose of a Test Coach * Optimization Strategies for the New Facebook.com - Ashley Watkins at React Conf * OpenAI Introduces Microscope, Visualizations for Understanding Neural Networks * Metaphors We Create By Metaphors We Create By * Facebook's CSS-in-JS Approach - Frank Yan at React Conf 2019 * Machine Learning on Mobile and Edge Devices With TensorFlow Lite Machine Learning on Mobile and Edge Devices With TensorFlow Lite * Audi Releases Autonomous Driving Dataset * Panel: JavaScript - Is the Insanity Over? Panel: JavaScript - Is the Insanity Over? * 55th Anniversary of Moore's Law * Kong for Kubernetes 0.8 Ingress Controller Released * My Team Is High Performing But Everyone Hates Us My Team Is High Performing But Everyone Hates Us * Dynamic Proxies in Java Mini-Book Dynamic Proxies in Java Mini-Book The InfoQ Newsletter A round-up of last week's content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example Enter your e-mail address [ ] [ ] Select your country [Select a country] [ ] I consent to InfoQ.com handling my data as explained in this Privacy Notice. [Subscribe] We protect your privacy. Hello stranger! You need to Register an InfoQ account or Login or login to post comments. But there's so much more behind being registered. Get the most out of the InfoQ experience. Tell us what you think [ ] [ ] Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p [ ] Email me replies to any of my messages in this thread [Post Message] Community comments Watch thread * Monorepo by Nick Bauman / * Monorepo by Nick Bauman / Your message is awaiting moderation. Thank you for participating in the discussion. Sounds like they missed a critical piece in microservices which is monorepo... Like Reply Back to top Close Your Reply Quote original message [ ] [ ] Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p [ ] Email me replies to any of my messages in this thread [Post Message] Cancel Close Your Reply [ ] [ ] Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p [ ] Email me replies to any of my messages in this thread [Post Message] Cancel Close OK 1 * Development + Obituary: Jan Stenberg + 55th Anniversary of Moore's Law + Rewriting Dropbox Sync with Confidence Thanks to a Robust Test Strategy * Architecture & Design + Architecture Decision Records At Spotify + Software Architecture and Design InfoQ Trends Report--April 2020 + Panel: Microservices - Are They Still Worth It? * Culture & Methods + The Value and Purpose of a Test Coach + Metaphors We Create By + Collective Sensemaking and Deliberately Developmental Conversations * AI, ML & Data Engineering + OpenAI Introduces Microscope, Visualizations for Understanding Neural Networks + Machine Learning on Mobile and Edge Devices With TensorFlow Lite + Audi Releases Autonomous Driving Dataset * DevOps + Building a DevSecOps Pipeline Around Your Spring Boot Application + Kong for Kubernetes 0.8 Ingress Controller Released + Vulnerability Scanner Trivy Now Available as Integrated Option within Harbor The InfoQ Newsletter A round-up of last week's content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example * Get a quick overview of content published on a variety of innovator and early adopter technologies * Learn what you don't know that you don't know * Stay up to date with the latest information from the topics you are interested in Enter your e-mail address [ ] [ ] Select your country [Select a country] [ ] I consent to InfoQ.com handling my data as explained in this Privacy Notice. [Subscribe] We protect your privacy. QCons Worldwide Next Event QCon New York Software Development Conference Jun 15-19, 2020 Upcoming QCons New York/ Jun 15-19, 2020 Beijing/ Oct 15-17, 2020 NEW Munich/ Oct 19-21, 2020 San Francisco/ Nov 16-20, 2020 Sao Paulo/ Dec 14-16, 2020 Shanghai/ Dec 18-20, 2020 London/ Spring, 2021 Home Create account Login QCon Conferences Contribute InfoQ Writers About InfoQ About C4Media Media Kit QCons Worldwide * New York Jun 15-19, 2020 * Beijing Oct 15-17, 2020 * Munich Oct 19-21, 2020 * San Francisco Nov 16-20, 2020 * QCon Sao Paulo Dec 14-16, 2020 * QCon Shanghai Dec 18-20, 2020 * London Spring, 2021 Follow us on 145kFollowers 9kFollowers 19kReaders 38kFollowers 18kLikes AlexaNew 1% for a Better World We care about the world in which we live and we want to make it a better place. We are doing so by fulfilling our mission to accelerate the human side of software development. We also donate 1% of our profit to different causes, which we as a company, as well as our employees, strongly believe in. General Feedback feedback@infoq.com Advertising sales@infoq.com Editorial editors@infoq.com Marketing marketing@infoq.com InfoQ.com and all content copyright (c) 2006-2020 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with. Privacy Notice, Terms And Conditions, Cookie Policy BT Is your profile up-to-date? Please take a moment to review and update. Email Address* [ ] Note: If updating/changing your email, a validation request will be sent Company name: [ ] Keep current company name Update Company name to:* [ ] Company role: [ ] Keep current company role Update company role to:* [ ] Company size: [ ] Keep current company Size Update company size to:* [ ] Country/Zone: [ ] Keep current country/zone Update country/zone to:* [--- Select a country --- ] State/Province/Region: [ ] Keep current state/province/region Update state/province/region to: [] [ ] Subscribe to our newsletter? [ ] Subscribe to our architect newsletter? [ ] Subscribe to our industry email notices? [ ] By subscribing to this email, we may send you content based on your previous topic interests. See our privacy notice for details. [ ] Subscribe to our Special Reports newsletter? [Submit] You will be sent an email to validate the new email address. This pop-up will close itself in a few moments. *