An agile application is distinguished from average applications in that it is a loosely coupled set of services with a decoupled orchestration layer and it is easily modified to address changing business needs and it is scalable by design.
Using agile applications development paradigms, a set of services can be built to address business specific functional components.
[1] There are many tools by different vendors (IBM,[2] Intel[3] etc.,) in the industry that can support the orchestration layer[citation needed].
The decoupled nature of an agile application permits it to accommodate fault tolerance and scalability.
Similarly, fault tolerance can be achieved through deploying multiple instances of a service.