🤖📘🍻 Hooray! After 3 years of work, we've finally released a new ebook on design patterns! Check it out »

Autogenerated Stovepipe

AntiPattern Problem

This AntiPattern occurs when migrating an existing software system to a distributed infrastructure. An Autogenerated Stovepipe arises when converting the existing software interfaces to distributed interfaces. If the same design is used for distributed computing, a number of problems emerge.

For example, the existing interfaces may be using fine-grain operations to transfer information that may be inefficient in a distributed environment. Preexisting interfaces are usually implementation-specific, and will cause subsystem interdependencies when used in a larger-scale distributed system.

Local operations often make various assumptions about location, including address space and access to the local file system. Excess complexity can arise when multiple existing interfaces are exposed across a larger-scale distributed system.

Refactored Solution

When designing distributed interfaces for existing software, the interfaces should be reengineered. A separate, larger-grained object model should be considered for the distributed interfaces.

The interoperability functionality used by multiple subsystems should be the design center of the new interfaces. Design that is independent of particular subsystems can be achieved through architecture mining. The stability of the new interfaces is very important, given that separately compiled software will be dependent upon these new designs.