Case Study: Digital Coupon Management

The Client

The client is a US company who provides innovative digital coupon management system. The system allows enterprise to manage a marketing campaign by defining a set of promotion coupons, distributing them to end-users via SMS or email, and having 360 view on the campaign activities.
The digital coupon management system support rich managerial capabilities of the entire coupon lifecycle, including coupon definition, distribute coupons to end-users, redeem coupon at stores, and report the status of the marketing campaign (e.g., statistic report on geographical locations, temporal information of coupon redemption, etc.)
The system is currently used by fast-food, café, restaurant industries.

Business Needs

• The client wants to adopt cloud computing platform to minimize initial hardware investment, and to be able to scale infrastructure resources quickly to meet business growth.
• The client wants to move the system to MS Azure platform to utilize their  partnership with MS
• The client wants to adopt MVC (Model View Controller) design pattern for a newly migrated Web application
• The system needs to be able to handle hundred thousands of transactions in peak hours.
• The system needs to integrate with POS terminal as its end points, and response time must be less than 2 seconds

The Challenges 

• Current applications include a Web-based application, a set of back-end Web services and Windows services that communicate in a synchronous fashion. Thus, to maximize the scalability of MS Azure, re-architecture the system is required to support resources scalability.
• Existing Web-based application is 3 tier applications. In order to migrate to MVC model, various data models need to be defined and redefined.

The Solution

We have defined two phases for the project
• Phase 1: Simple MS Azure transformation
• Convert existing Web-based applications to Web Roles of MS Azure
• Convert existing Web Services and Windows services to Worker Roles of MS Azure
• Migrate MS SQL 2008 to SQL Azure
• Phase 2: Application optimization
• Re-design data model to support MVC pattern
• Remove application sticky sessions to adopt Azure Load Balancer
• Assess the application to replacing synchronous communication by asynchronous communication between Web roles and Worker role for scalability (MS Azure Queues)
• Partition the SQL Azure

Technology Used   

• Visual Studio 2010, MS Team Foundation Server 2010, MS Test Manager, DevExpress MVC controls, Stylecop, MS Project Server, Office 365
Technology Used
• .NET 3.5, WCF, ASP.MVC, SQL 2008, Windows Azure, SQL Azure