Switching Fulfillment Outsourcing Providers
The integration bus would have 3 major data flows that integrated ATG, Radial, and other systems:
- Order Create: from Ecommerce to Radial with primary order information
- Inventory ATP: from Radial to Ecommerce with Inventory Available-To-Promise
- Order Status: from Radial to Ecommerce with Order Status updates.
A primary challenge of swapping TG for Radial was that orders must be able to keep flowing through cutover, and to minimize downtime.
The Entire Project would have to be completed in a tight time frame with a hard cutover in early July, and a short window to fix production bugs before code freeze in Q3 (due to holiday order rush).
Development to completely re-engineer the integration on ATG was deemed too intensive and not possible in the short time period, especially given a parallel launch of a loyalty points project that was taking a substantial commitment by the ATG development team. ATG’s XML APIs must be kept as-is, and would be completely incompatible with the new Radial system of data exchange.
The Manufacturer had little skilled resources or bandwidth to develop an integration on their own.
Dev-ops is not a strength of the manufacturer, and their data center is mostly outsourced much like their ATG hosting solution. A solution that required on premise installations would put the project at risk due to installation timelines.
Orders coming from ATG and going to fulfillment must be reliably transmitted, with good performance even during peak times.
In a presentation to senior manufacturers IT staff, 4 options were discussed in detail to attempt to illustrate options that were readily available in Feb of ’17. ATG Ecommerce development was mostly off the table because of timing and the team required (see Challenges)
Mulesoft Cloudhub was ultimately decided upon for the reasons of reliability and ability to execute in tight time frame.
Solving for the tight time frame and inexperience of the TAISTech team, TAISTech contracted Intrgrex and Jameson Triplett Wildwood as an experienced Mulesoft Architect and Developer. Jameson had years of experience developing reliable messaging systems and met with the manufacturer directly to gather requirements and build out the initial solutions blueprint. He led the development and testing team from solution architecture to development through QA and Go-Live on Schedule and budget.
The Implementation of the Order System used a reliable messaging pattern developed and tested at multiple clients through Jameson’s experience in Mulesoft. It is Reliable, Redundant, and Re-playable. Messages are received into queues, stored in a database for auditability and visibility, and transformed into sending queues to Radial.
The implementation with Cloudhub and Mulesoft performed without defects through the heavy holiday shopping season. The CIO of the company asked TAISTech and Jameson by name back for more implementations using Mulesoft.
The solution consisted of three Integration Applications: Order_Create, Order_Status, Inventory_ATP.
At a High Level Order_Create integration takes a POST from ATG in the legacy format, and converts it into the Radial Order_In format. Monitors Radial for Order Status and then sends messaged to ATG and other areas within rue21 when the order is completed or hits some other status. An architecture was selected to emphasize reliability and visibility of the messaging. A database was used to record the Orders passing through the application and their subsequent transmission and reply status.
At a high level Order Status reads an FTP based order Status feed from Radial SFTP server and splits and transforms the order status to send to multiple receivers. Msgdb here was implemented to record the Order Status files received to establish visibility to the Integration working as intended.
At a high level the Inventory ATP integration takes the Inventory Delta and Full files from Radial and parses and transmits them to ATG so that ATG has an up to date Inventory of items for sale. Msgdb, similar to Order Status, is implemented to monitor the ongoing transmission of inventory files.
Inside Cloudhub, to accomplish the plumbing required to connect to all the systems we had to implement a VPC with 3 IPSec tunnels, one to rue21 data center, and 2 to Spark::Red for their dev and prod VPCs.
Beyond the simple data mapping, several architectural choice were made that will have substantial benefits into the future:
The design with a database containing message metadata will serve to add metrics, and accountability to the deployment. The database provides a first stop to see the system working as intended, see the status of message as they are passing through, and account for discrepancies in reported numbers. Simple queries will allow users and support to see data like: “How many orders were confirmed yesterday?” “How many orders failed?” “Can we compare order numbers on ATG, to Mulesoft, to Radial?” All of these metrics are extremely valuable to the business and IT support.
Cloudhub was chosen to provide a supported Platform (iPaaS) on which to deploy Mulesoft services. It allows rue21 and supporting staff to be concerned only with implementation not with DevOps. Cloudhub also provides easy upgrade paths, where each application can be easily upgraded Mule versions and tested individually.
Ready To Get Started?
Certified MuleSoft Professional
Choosing a Certified MuleSoft Professional has never been easier. We have managed 100’s of successful integrations since 2011.
"Jameson brings high energy, enthusiasm, smarts, and optimism to any team he is a part of. His deep knowledge of Mulesoft is highly valued.
- Glenn Whiting
"Having worked closely with Jameson, I can attest to his technical knowledge, creativity, drive, and lateral thinking abilities."
- Sean Canny
"Jameson is a master in the the art and the science of training people. He single-handedly built MuleSoft's training program from the ground up"
- Nahuel L.
"Jameson approaches his work with passion, innovation, and analytical capability often delivering game-changing results for his company."
- Charles Colt