Middleware product architectures greatly influence application architectures.
This makes architecture and portability of design and code, even across technologies from the same stable, very difficult to achieve. Different product configurations can radically affect application performance, scalability and reliability. Most products rely upon some proprietary APIs to provide differentiated services. Product reliability has on the whole been good, although we have found anomalies and problems in nearly every product we have worked with. Often these have only revealed themselves under stress testing.