All Software Architecture, All the Time
June 10-13, 2019
San Jose, CA

Improving real-world system architectures

Ray Mitchell (Fairway Technologies )
9:00am–10:30am Wednesday, June 12, 2019
Secondary topics:  Best Practice, Overview
Average rating: ****.
(4.25, 12 ratings)

Who is this presentation for?

  • CTOs, VPs of engineering, directors of engineering, and developers

Level

Intermediate

Prerequisite knowledge

  • Intermediate to advanced architecture and developer skills

What you'll learn

  • Consider architectural decisions in context of existing systems
  • Identify migration path from legacy to new architectures
  • Recommend architectural changes that maximize continued value of existing systems

Description

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.

Photo of Ray Mitchell

Ray Mitchell

Fairway Technologies

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.