Mortgage companies and appraisal management companies face fast, complex, data-heavy business processes. To manage all the documents and data surrounding the processing of appraisal orders, as well as automating the processes themselves, they need enterprise-class, fast, easy-to-setup, scalable services with virtually unlimited capacity.
It sounds like a job for a cloud computing platform.
Anil Balakrishnan thought so, too. Balakrishnan is Vice President of Product Solutions at Schakra Inc., a solution provider whose clients include Microsoft and Vodafone. To create such a solution for an appraisal management company, Schakra teamed with Bradford Technologies and Nasoft. The result is a Unified Collateral Data Portal (UCDP™) submission service, called PortalDirect™, which Balakrishnan says is the first of its kind.
When they created the service, Balakrishnan and his colleagues had a choice of cloud-computing platforms and they considered their choice carefully, including Amazon SQS with SNS, SimpleDB, and S3. But they chose Windows Azure.
“The driving factors for us to use Windows Azure were the familiar developer experience and the community support,” he says. “Furthermore, our extensive knowledge and experience in the .NET Framework and other Microsoft technologies made it easier for us to work with Windows Azure and its platform services, and to overcome development challenges without needing custom solutions.”
Mortgage lenders and other users access PortalDirect to submit their appraisal orders, which are processed through a multi-step workflow integrated with third-party services. To coordinate those services within the workflow, the developers chose a message-oriented architecture. Each service exchanges messages with PortalDirect to communicate the action that each participant has to take to advance the workflow. This messaging-based architecture lends itself to a stateless system that enables massive scale across identical nodes without the need to maintain a node-workflow affinity.
In designing PortalDirect, the developers kept three needs top-of-mind:
- Scalability, as measured by system throughput.
- Reliability and availability, to support the business needs of the financial services users.
- Fault tolerance, defined as the ability to recover gracefully and without data loss from the inevitable transient failures that occur in workflows with many components and services.
The developers used Windows Azure—and, in particular, Windows Azure Service Bus—to help meet these needs. The Service Bus offers out-of-the-box features to implement a message-based asynchronous and stateless workflow. This is the key architectural element of the solution and is served by Service Bus topics and queues. The developers used Service Bus topics, for example, to implement a publish/subscribe architecture. They used queue-based messaging to load-balance system components efficiently and to protect the workflow from transient failures in those components. That helps meet the needs for scalability, reliability, and fault tolerance.
According to Balakrishnan, the Service Bus was an easy choice, as well as an effective one, in part because of its API. “The API is designed to be easy to use and, for the most part, self-explanatory,” he says. “It offers a good choice of client libraries/techniques that we used for all sorts of scenarios, such as .NET client libraries and examples to create our own WCF/REST clients. The documentation—for example, MSDN articles on performance tuning and best practices—helped us to build a world-class system.”
Schakra began to roll out the PortalDirect service to its customers in August 2011 and says the system has functioned effortlessly ever since. The PortalDirect has processed more than 110,000 appraisals to date and supports, on average, more than 1,800 transactions per business day.