Case Study: Online Marketing Platform Reengineering

| Vasyl Soloshchuk

Marketing Platform Reengineering

The Client

A highly innovative US-based company that technologically enables a large network of nonprofit organizations to conduct their activities more efficiently. The company’s flagship technology represents a powerful, multi-purpose and feature-rich marketing platform that provides online fundraising, advocacy campaigning, external communication and supporter management functionality.

The Scope

Help the client with reengineering the existing Online Marketing Platform to make it scalable, boost performance and expand functionality by adding business processes.

The Challenge

The project required complete software reengineering, which means the following:

  • Creating new system architecture – The existing platform had a monocore architecture which included frontend and backend services. Even simple operation required a number of servers and instances. Modularizing the platform architecture saved resources and made the platform scalable.
  • Data restructuring – The existing data structure didn’t allow us to use all the benefits of new system architecture, which is why the database was restructured. Every component should work with its special database; a Warehouse collects data from all databases, transforms and stores it.
  • Using contemporary technologies – As the Online Marketing Platform was created more than 10 years ago, the technologies used then became aged and hindered platform development and maintenance. Using frameworks, the best databases and cloud services helped to solve scalability and performance problems. Besides that, it made providing new functionality easier.

The Solution

When modularizing the platform architecture, a service-oriented architecture was created. REST API with JSON were chosen for communication between services. Spring Framework allowed to develop the new architecture quickly and with minimum troubles. The platform was Java-based, so Java 8 was selected as a programming language.

MySQL and MongoDB databases used in the legacy platform were replaced with PostgreSQL, which supports migration from most databases and showed reliability, data integrity and correctness in other projects. Using the Hibernate ORM framework gave us the ability to map Java classes to database tables easily. As a result of these improvements, the development process became faster.

To make a data Warehouse, we created a special OLTP system for every service (application) and built a customized ETL process to transform data for storing it in the Warehouse.

ETL process

Each application/service is configured as a cluster of independent nodes and a distributed in-memory data grid is used to share data between those nodes. So even if one node fails, no data is lost and the application/service continues functioning with no downtime.

The Online Marketing Platform provides 3 main roles: Anonymous User, Manager and Administrator. Besides the security aspects, each role has a special UI. A web-based visual editor was developed for Manager and Administrator roles. Anonymous User refers to Public Facing and Payments Processing apps run in a Cloud.

Marketing Platform Roles

 

Using Amazon Web Services (AWS) IaaS/PaaS increased developer productivity and added such cloud characteristics as scalability and high availability. Hardware and software configuration can now be easily set. Application customization and monitoring with AWS made the system elastic and cost-effective. The Amazon auto scaling feature provides flexibility in adapting data center infrastructure for temporary high/low loads.

When building the UI, we used a responsive design approach. Highcharts JS helped in building interactive charts in KPI reports, which may be built by a Manager.

INSART’s participation within the project was initiated by the customer. Considering the specificities of subcontract development, INSART introduced Smart Engine, our custom collaboration approach based on full integration of INSART’s team into the structure of a customer’s development team.

Results

Thanks to effective research and development processes, the new platform was successfully built. It inherited some of the previous version’s functionality, some business processes were enhanced and many new features were added.

Contemporary technologies, new system architecture and modified database structure made it possible to boost performance, improve scalability, and fault tolerance. Integration with third-party applications can be easily achieved using REST APIs.

The new Online Marketing Platform was successfully released twice. INSART provides its maintenance and further development to this day. The platform functionality can still be widely extended.