BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles InfoQ Software Architecture and Design Trends Report - April 2024

InfoQ Software Architecture and Design Trends Report - April 2024

Key Takeaways

  • Organizations are adopting cell-based architectures that contain and isolate a set of related services. The benefits include reduced latency, increased reliability, and cost savings.
  • Innovators in privacy engineering are proactively designing systems with the security of users and their data as the primary consideration rather than simply responding to security regulations.
  • Data continues to be a major force in architectural decisions. Complex analytical platforms and ML models are no longer considered secondary components as they shift towards core parts of transactional systems.
  • In the past year, large language models (LLMs) have become a common feature in nearly every corner of the industry, but significant innovation opportunities remain to take LLMs beyond glorified chatbots.
  • With the ideas from Team Topologies spreading across the industry, architects are giving more thought to the socio-technical factors of who will build and maintain the components of a system.

The InfoQ Trends Reports offer InfoQ readers a comprehensive overview of key topics worthy of attention. The reports also guide the InfoQ editorial team towards cutting-edge technologies in our reporting. In conjunction with the report and trends graph, our accompanying podcast features insightful discussions among the editors digging deeper into some of the trends.

Updates to the trends graph

This year brought a comprehensive review of everything that was on last year's InfoQ Architecture and Design Trend Report graph. Some of the broader theme items have been replaced with more specific tools, technologies, or patterns. For example, the past few years included several "design for ..." concepts that intended to showcase the "-ilities" and quality attributes architects considered in their trade-off analysis. This means some items which have appeared for several years are no longer on the graph, and in their place is a more specific aspect of the same concept.

For example, the topic of "privacy engineering" is more precise than "design for security". Although all companies consider security in their designs, privacy engineering identifies user privacy as a leading design principle. That mindset is still relatively new in the industry, which places it in the innovator category.

Similarly, green software has replaced design for sustainability. The innovative trend here is considering a system’s carbon footprint from day one rather than being reactive when cloud cost–and the corresponding energy usage–gets too high.

Cell-based architecture is a new addition to the trends graph, appearing in the innovators category. Overall availability and fault tolerance can be improved by giving extra attention to how and where services are deployed, restricting communication paths between services, and isolating faults within one cell.

Socio-technical architecture is replacing "architecture as a team sport" as an early adopter trend. This trend also emphasizes the importance of Conway's Law when designing complex systems that are built and maintained by many teams.

Another substitution of a specific trend over a general idea is the reintroduction of Dapr to the graph this year, replacing "design for portability".

Large language models moved from innovator to early adopter this year. Also in the early adopter category is edge computing. This was previously being tracked on the Cloud and DevOps Trends Report, and is now a topic that architects are incorporating into innovative designs.

The last change was moving low-code/no-code across the chasm to the early majority. As with many architecture and design trends, this does not necessarily indicate a majority of companies are actively designing and building low/no-code solutions. Rather, the level of innovation has plateaued, and the patterns to follow are well-established.

Cell-based architecture - Innovator

One notable design being discussed lately is cell-based architecture. Often microservice architectures are deployed with services using an "everyone talks to everyone" approach. Cell-based architecture imposes routing constraints where services prefer calling other services in the same cell, which can often be an availability zone. This can lead to significant cost savings while also increasing performance due to reduced latency. When implemented correctly, cell-based architectures increase availability since faults are contained in one cell, leaving other cells fully functioning.

Roblox, Slack, and DoorDash are just a few examples of companies that have implemented cell-based architectures and seen measurable improvements. We believe this is an innovator trend that many companies will start to adopt as they look to right-size their distributed systems, control costs, and improve system resiliency.

For more information:

Privacy engineering - Innovator

While security has always been an important aspect of well-architected software, we're seeing innovations under the heading of "privacy engineering". The innovation here is a shift from a reactive mindset, such as responding to GDPR, CCPA, or other regulatory requirements, to a proactive mindset where the security of users and their data is a leading design consideration. One example of this is DoorDash, which relies on personal data such as addresses and actively obfuscates or removes this data after a delivery has been made.

For more information:

Green software - Innovator

Although there is a fair bit of talk about designing sustainable, carbon-friendly software systems, there is not widespread evidence of industry-wide progress. For that reason, we see green software as an innovator trend, and not yet at the early adopter stage. QCon London 2023 had a track dedicated to sustainability that featured many ideas of how we can architect with sustainability in mind. However, there are fewer real-world examples of companies leading the way in designing software to be green from the start.

For more information:

Socio-technical architecture - Early Adopter

Socio-technical architecture is a new trend this year, and it encompasses several related ideas. One aspect is the role of architects, which has been previously referred to as "architecture as a team sport" or "architect as technical leader." This encapsulates the idea that anyone can make an architectural decision and that architects have a responsibility to mentor and teach others. The other aspect of socio-technical architecture covers ideas like Team Topologies and Conway's Law.

More companies are starting to realize that the design of a system must consider all the people who build, support, and maintain the system. While any one concept may have moved to the early majority stage, the comprehensive idea of socio-technical architecture is currently at the early adopter stage.

For more information:

Large language models - Early Adopter

Large language models are gaining very rapid adoption, and many companies are looking for ways to incorporate them into their systems. However, the number of novel implementations is far more limited once you get past chatbots and retrieval-augmented generation (RAG). For the purpose of this report, we're trying to be narrow in our description of LLMs, not using the "catch-all, but largely meaningless term "AI."

While predicting the future is impossible, the next year will likely see notable innovations around LLMs, possibly spinning off new innovator trends.

For more information:

Platform architecture - Early adopter

Several companies offer products to build platforms or help with platform engineering, which is generally a sign that something has crossed the chasm and has growing adoption. However, there is serious innovation at the intersection between how platform engineering is influencing architecture and the design of systems, and how architectural concepts are influencing platform engineering. This can be a symbiotic relationship, where architecture is influenced by what is available on the platform, and the platform evolves to suit new architectures.

Platform engineering is important to architects because the platform you build determines the architecture you choose.

For more information:

Edge computing - Early Adopter

Edge computing is another trend that has crossed the chasm to the early majority on the InfoQ DevOps and Cloud trends, and it's now appearing here as an early adopter trend for architecture and design. In most cases, edge computing helps improve performance by reducing latency between the user and the data or compute they are accessing, which can be significant in certain parts of the world.

Rather than simply reacting to latency issues, architects are increasingly designing systems for the edge. This can reduce costs, increase reliability, and reduce the environmental impact of a system.

For more information:

Data-driven architecture - Early Adopter

A considerable portion of architecture decisions relate to the data in a system, and it can be challenging to identify clear trends that can be widely applicable. The category of data-driven architecture represents the shift of complex analytical platforms from being add-on, adjacent components into core parts of transactional systems.

For example, ML models are now used for near-real-time analysis of data and events, which then drives other behavior in the system. This means those analytical elements are first-class elements of a system, and architects need to design them to have resiliency, performance, and observability, just as with any other major system components.

A related trend is MLOps, which is the intersection of data-driven architecture and platform engineering. Because of this overlap, MLOps is not called out as a distinct trend for architecture and design.

For more information:

 

About the Authors

Rate this Article

Adoption
Style

BT