Catalog Creation and Automation with Spring State Machine Concept

About Client

One of Asia’s largest E-commerce marketplaces that assists businesses with services in the areas of e-auction and e-procurement of resources like steel, oil and coal.

Client Revenue: $185 Million (FY’21)

Background

  • The client conducts e-auctions through their digital platform regularly. One of the important steps in conducting e-auctions is the creation of a catalog for every auction. Each e-auction has a unique catalog and the auctions are performed based on the catalog [workflow, definition, purpose, category].
  • The client’s existing catalog creation method started getting very complicated over the years due to:
  1. Disparate requirements from their customers
  2. Broad range of auctions that were being held

Challenge

Catalog Creation

The client wanted to create a system which can define a set of steps at the beginning of the catalog creation process and direct the steps until it is published.

Catalog Modification

There are various types of auctions which require different set of rules/information where if a user exits the catalog creation in the middle without publishing, it cannot be edited again. Hence, the user will have to start the process from scratch if he wants to resume which costed time and effort.

Also, each user had different and ad hoc business requirements which was difficult to fit in the pre-existing system

Objective

  • Streamline the process of catalog creation
  • Provide a feature to exit the catalog creation at any given point and edit if needed instead of starting from scratch.

Our Solution

Application Modernization.

Struts and JSP were widely used in the past for building web applications including catalog creation processes. However, with the emergence of advanced technological solutions for application development, many organizations have moved away from Struts and JSP to adopt newer and more powerful frameworks such as Angular, React, and Spring Boot.

  • The BizAcuity team had a discovery call with the client’s technical and operations team to better understand the existing process of catalog creation.
  • As a result of the discovery phase, numerous new scenarios were identified that needed to be integrated in the new modernized application. This helped to develop a new pipeline for the catalog creation process.
  • Subsequently, the problems were classified and a flow was created to handle the dynamic business requirements
  • The client decided to move away from their previous Struts and JSP-based catalog creation process to a more robust and flexible solution with SpringBoot, Thymeleaf and Spring Statemachine concepts.
  • The new Spring State machine-based solution was designed to define the flow of steps to be followed by the user at the beginning of the catalog creation process based on the initial catalog flow the user provides

Spring Boot is a powerful Java-based framework that is used to quickly build production-ready web applications. The platform offers numerous pre-configured choices and conventions that let programmers build applications with the least amount of configuration possible.

Thymeleaf is a modern server-side Java template engine used for creating web applications. It offers a natural template language that is simple for both designers and developers to understand. Thymeleaf is commonly used for building web pages and generating HTML output and integrates well with Spring Boot.

Spring State Machine is a framework for building applications with complex state-based behavior (the behavior of the system would change based on the current state of the workflow, in this case, defining the flow of steps for a user who wishes to create a separate catalog). It offers a simple and flexible solution to model and control the transitions of an application. Spring State Machine is built on top of the Spring framework which allows developers to define states, events, actions etc. and control the flow of an application based on these elements.

Outcome

Catalog Creation

The new Catalog Automation pipeline resulted in a more efficient process for users when they want to create a catalog.

A new flow can easily be configured just by deciding the steps to be followed and configuring spring statemachine transition data in the database

Catalog Modification

A user can exit wherever they want and revisit the flow again when they are ready to proceed. All the previously filled data will be available and viewable by the end user

The flow can be mapped for different clients based on their changing requirements