Susan Potter
software: Created / Updated

The costs of digital twins and solving the 200% problem

A “digital twin” promises a perfect replica of reality, a world without abstractions or high costs (time, efforts, money) yet immediate feedback that mimicks the target system radically improving developer productivity and eradicating the 200%-problem. Yet, in the realm of complex target systems like AWS, this utopian ideal is elusive.

What is the 200% Problem?

In the context of infrastructure management, the “200% problem” refers to the challenge of understanding both the underlying system and the tools used to configure it.

To effectively manage infrastructure, you need to understand:

For example, consider configuring a cloud-based infrastructure using a tool like Terraform. You need to understand:

However, in practice Terraform offers almost zero abstractions and maps directly to the AWS resources I have defined with it though this varies from module to module or resource to resource at times.

The 200% problem highlights the importance of effective abstractions. Good abstractions can simplify complex systems, reducing the cognitive load on users and making it easier to manage infrastructure. However, bad abstractions can lead to confusion, errors, and increased complexity.

Back to Digital Twins

What even are Digital Twins?

In a sentence: a digital twin is a virtual replica of another underlying system with enough detail that it serves a purpose like mimicking enough behavior to provide a specific benefit. In infrastructure engineering, we often need a cheaper, faster replica to simuate how an underlying system may behavior given some input before we send the input. Software engineers can view this like a test double .

So a digital twin is a virtual representation of a physical or virtual system. It mirrors the behavior, state, and interactions of its real-world counterpart. In infrastructure management, it’s a virtual replica of a server, network device, or application.

Key attributes:

Benefits:

By providing a virtual representation of a physical or virtual system, digital twins offer a powerful tool for understanding, managing, and optimizing complex systems.


The effort required to construct a digital twin of AWS, a system of immense scale and complexity, is akin to building a miniature replica of the solar system. It’s a monumental undertaking, fraught with challenges and potential pitfalls. The digital twin would need to be constantly updated to reflect the rapid pace of change in AWS, introducing a never-ending cycle of maintenance.

While the concept of a digital twin might seem appealing, the practical realities of building and maintaining such a complex system must be weighed against the potential benefits. Is the effort truly justified, or is it a rabbit hole that diverts attention from more pragmatic solutions?

A more sensible approach might be to focus on providing a powerful, intuitive interface that abstracts away much of the underlying complexity of AWS. This is precisely what systems like NixOS offer. By providing a declarative configuration language and a package manager, NixOS allows users to define the desired state of their infrastructure without needing to delve into the intricacies of the underlying system.

NixOS, in this context, serves as an example of a tool that offers abstraction as a form of leverage for configuration. It allows users to work at a higher level of abstraction, focusing on the desired outcome rather than the underlying implementation details. This can significantly reduce cognitive load and improve efficiency.

While digital twins can be valuable in certain scenarios, particularly when dealing with more complex infrastructure environments, they are not a panacea. The key is to use digital twins judiciously, focusing on specific areas where they can provide the most value.

In my experience, targeted digital twins can be a powerful tool for simulating specific aspects of infrastructure. I’ve used them successfully to catch potential issues early in the development cycle. However, building and maintaining a complete digital twin of a complex system like AWS is a significant undertaking with substantial costs.

The costs of digital twins can include:

If the surface area, complexity, or required change frequency of the digital twin is too large, the costs can outweigh the benefits. In such cases, it may be more practical to rely on other techniques, such as testing and monitoring, to ensure the reliability of your infrastructure.

The key lies in building abstractions that strike the right balance between simplicity and power. By focusing on providing a high-level interface that abstracts away unnecessary complexity, we can empower users to manage their infrastructure without getting bogged down in the details.

The Bottom Line

Both digital twins, effective abstractions, testing, and monitoring all play vital roles in managing complex infrastructure. It is essential to carefully evaluate the costs and benefits of each approach in the contexts you want to adopt them and choose the best strategy for your specific needs, limitations, and team maturity which is often not adopting any approach entirely wholesale to replace the use of the other. Judgement has an important role to play much to the chagrin of the charlatans selling one specific ideology. By combining the power of selective digital twins in the areas it provides the most value with lowest costs (i.e. time, effort, money) with well-designed abstractions, organizations can improve their ability to manage complex infrastructure efficiently and effectively.

If you enjoyed this content, please consider sharing this link with a friend, following my GitHub or LinkedIn accounts, or subscribing to my RSS feed.