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 (Fairway Technologies) 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.
This session was recorded at the 2019 O'Reilly Software Architecture Conference in San Jose.
- Title: Improving real-world system architectures
- Release date: December 2019
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 0636920337720