Custom enterprise software tends to be laser focused on solving business problems and generating value for the organizations. While some problems can be addressed with standard software architectures, other problems may be challenging enough that they require the software to leverage compute resources in a “divide and conquer” approach to the problem. Distributed application architectures are used to achieve this sort of more exotic outcome, but are traditionally more difficult to build.
Distributed applications are composed of loosely coupled components that are typically running on physically separate resources, giving each component the ability to contribute its available resources to completing the task at hand that the developer may have programmed it to perform. The difficulty in this architecture pattern is that coordination, data sharing, and messaging are all required, making development of distributed applications much more than just the logic of the solution.
The Apprenda platform is a decentralized hosting fabric and runtime that makes writing distributed applications using well-understood SOA and microservices principles much easier. The runtime handles messaging across networking boundaries, and Apprenda APIs for services such as distributed caches and distributed queues supplies out of the box architecture components for writing distributed applications. Because of Apprenda, enterprises can write applications that solve challenging problems and get to market with those applications significantly sooner and under budget.