CRM systems are bulging at the seams with increasing numbers of new Web technologies and hundreds of thousands of new users. This combination can place a stranglehold on CRM to the point major data bottlenecks are created during peak loads. Against this backdrop, three basic tenets are critical to developing a successful CRM system -- whether in-house, as a commercial product, or for use as software-as-a-service (SaaS). Those three tenets are:
- high availability;
- quick response time; and
You want to make sure the system is always up and fully operational so that when sales, support, and marketing personnel need it, the CRM application is available. Otherwise, entire teams lose their effectiveness.
Next, you want to conduct business expeditiously. This means making the user experience pleasant by creating an easy, prompt, and fast transactional environment.
Third, scalability means keeping the same performance even during peak usage times, but many high-transaction applications are unable to scale and their performance grinds to a halt during those times. Scaling up the CRM application can be done by removing bottlenecks from the application. One common bottleneck in many CRM applications is an application that makes too many expensive database trips. Reducing these trips relieves the database load and allows it to handle more users.
Many CRM systems are Web-based, and Web applications provide them great flexibility. Your personnel can use them inside and outside the company, over the Internet, plus they can be provided as SaaS. But the best part about these Web-based applications is that they can be scaled up to efficiently deal with peak loads.
For CRM systems to operate at their best, this trio of principles can be implemented via distributed caching, a relatively new technology supporting Microsoft .NET Framework, ASP.NET, and Java-based applications. Caching is the process of storing frequently used data close to the application. This data is stored in memory, as objects, and retrieving data from memory is faster and more efficient than doing so from a database.
Caching data in the application server tier dramatically cuts down on the number of database trips an application has to take. Consequently, it reduces the load on database servers, making their operations faster. Plus, when offloaded, database servers can handle a considerably larger number of clients without the need for expensive hardware upgrades.
Simply storing data in the database, especially in .NET or ASP.NET, is not an acceptable option. ASP.NET camps face the issue of the user session storage becoming a bottleneck during peak loads. The out-of-the-box user session storage is not scalable as sessions are also stored in the database; ideally, it should be cached closer to the application. Moreover, user sessions are lost if a Web server goes down. Hence, you don't have 100 percent availability due to these limitations in ASP.NET.
Distributed cache's fundamental benefit is it stores and shares data with all the users of a given application, But here, a caveat emptor. Distributed caching must be highly intelligent to avoid data integrity problems. Another major benefit is a dramatic improvement in your application performance. Performance in this instances means quick, top-notch response time for users with no waiting around or telling the customer, "Please hold. Let me pull up your record," followed by one to two minutes of elevator music or customer-distained commercials.
Distributed caching also improves availability, thanks to data replication. With user session data replicated across multiple servers, having a single server go down won't derail the entire CRM application. Another benefit of replicated cache is that your cache exists in more than one place. If any server goes down, you don't lose any cache data. A selection of replicated cache includes clustered replicated cache suitable for small clusters of two to six server nodes, partitioned cache clusters for large 50-to-100 client nodes, and partition-replica caching. The latter lets you store geographically specific data in each partition. Moreover, multiple servers or replicas contain the same data for scalability.
Performance, scalability, and high availability translate directly into dollar savings. In a contact center, for example, total cost effectiveness is often dependent on how concise a call can be. The longer a customer's call, the more costly -- but the shorter it is, the less costly and more effective. Therefore, a faster CRM system, even under peak loads, equates to greater throughput, a more-effective staff handling greater call volumes, better customer satisfaction and services -- and, in short, doing more with less cost.
About the author
Iqbal Khan (firstname.lastname@example.org) is president, technology evangelist, and CTO of Alachisoft, a leading provider of high-performance solutions for Microsoft .NET Framework, ASP.NET, and Java-based Web applications. Learn more about Alachisoft at www.alachisoft.com.
Please note that the Viewpoints listed in CRM magazine and appearing on destinationCRM.com represent the perspective of the authors, and not necessarily those of the magazine or its editors. If you would like to submit a Viewpoint for consideration on a topic related to customer relationship management, please email viewpoints@destinationCRM.com.