A major challenge architects face is planning how to successfully move an existing system to an improved architecture while keeping the system up and running during the process. Ray Mitchell reviews two real-world scenarios where failing systems were rescued by guiding development toward practical, improved architectures. You’ll see examples of how different techniques and methodologies were applied to move real-world systems to new architectures while allowing for incremental improvements along the way.
The first scenario focuses on a data aggregation system responsible for collecting power-usage data from a variety of sources to be consumed by multiple applications. The existing system suffered from a proliferation of services without clear responsibility boundaries. This limited scalability and made using the services more complex than necessary. Through domain-driven design, a more clearly defined organization became clear, and an incremental roadmap to move to this architecture enabled immediate gains and long-term success.
The second scenario focuses on a reporting system built to provide insight into educational test results at both macro and micro levels. The original system struggled with scaling to generate reports within the required time frame at all levels. An architecture supporting separate optimized data stores for each level of report was designed that would enable all reports to run efficiently. Through careful planning, the existing system continued to deliver, as the improved architecture was incrementally added, allowing for improvements to be seen along the way.
Ray Mitchell is vice president of architecture at Fairway Technologies, where he assists companies like PayPal, eBay, Netflix, and LPL with the success of their software projects. Ray is an experienced teacher, mentor, and trainer with over 15 years of software industry experience in all phases of software development including business analysis, architecture, development, deployment, and production support, and he has extensive experience developing enterprise applications using Java, .NET, C, and C++, with AWS and Azure cloud infrastructures. Ray also teaches advanced and intermediate C, C++, data structures, and algorithms at the University of California, San Diego. Previously, he worked at Intuit, NCR, HP, and Indyme. Ray holds a BS in computer science from the University of California, San Diego.
©2019, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • email@example.com