Open Commerce Platform
November 2019
Software Design

Stuzo is technology organization offering both products and services to support a variety of retail organizations, like Dave and Buster's, Sunoco, and WeWork. The team has developed a comprehensive platform, Open Commerce, that supports a wide range of customer experiences, including payment processing, mobile payments, fuel pump activation, etc. Loyalty program management represented a natural extension to the platform and was an area that the team had not invested heavily in. While considering acquisition prospects, the team came across Hatch, whose loyalty platform was highly complimentary to the current capabilities of the Open Commerce platform. As a result, Stuzo decided to acquire Hatch and the deal was finalized in Q4 of 2019. As a significant contributor to the Hatch platform, I was asked to remain engaged and to continue contributing to the design and development the Hatch and Open Commerce platforms.

He has that rare ability to take extremely complex and technical problems and turn them into easily understood and executable tasks. Harrison wore many hats at Belly, a testament to his diverse skill set. He always led by example, regardless of his role, and was a great mentor to those who worked with him.
- Daniel Lavin, VP of Product at Stuzo (source)

The first step for the team was to determine the best path for integrating the Hatch platform, which would be renamed to Activate, into Open Commerce, enabling existing customers to set up and run their loyalty program(s) as part of their Open Commerce retail operations. To accomplish this we considered multiple technical approaches, evaluating each based on its technical tradeoffs and its alignment with the business's priorities. One of the approaches consisted of a gradual rebuild of the Activate platform within the Open Commerce architecture. This proposal would allow the Open Commerce architecture to remain consistent and for the overlapping concepts (e.g. customers, transactions, etc) to be integrated in a seamless manner. However the cost of this was a reduced set of initial capabilities that could be supported, since each feature would need to be migrated/reimplemented one at a time. The primary alternative considered was a wholesale integration of the Activate platform into Open Commerce. This would expose the full suite of loyalty program management capabilities within the Open Commerce platform immediately, but would introduce inconsistency and technical debt into the platform that would need to be paid down over time. After significant consideration and debate, the organization opted to integrate the Activate platform in a wholesale manner to capitalize on developments within the sales pipeline.

I have continued to assist the team, providing design, development, and devops support, as we have worked to refine the integration of these platforms and develop new capabilities. The following are a few of the key projects I've worked on in this role:

  • Infrastructure Integration: The Open Commerce platform was developed as a Service Oriented Architecture (SOA) and as such is composed of a number of independent services. One of the first items required to integrate Activate was to update the Open Commerce infrastructure, managed via Terraform, to support hosting Activate alongside the rest of these services. This introduced a few additional challenges, since the Activate architecture does not fit the mold of all other Open Commerce services. Firstly, Activate is a Ruby on Rails application, while all other Open Commerce services are built on NestJS. The Activate service also uses multiple processes to manage its various responsibilities, including a web server, a background job worker, a message bus listener, etc. Activate is primarily integrated via a RESTful JSON-API interface while Open Commerce services exclusively expose a GraphQL API. And finally, the Activate product includes a static web applications used by agents to manage each loyalty program and its members. After addressing each of these concerns, I was able to get a fully functioning instance of the Activate service running within the Open Commerce platform, allowing the team to proceed with the deeper integration of these two systems.

  • Comprehensive Sales Demo: Once we had Activate marginally integrated into Open Commerce, the next key objective was to enable the sales team to demonstrate these capabilities to prospective customers. This included support for a simulated point of sale and consumer mobile app experience, as well as support for activating and discounting transactions performed via a test pump set up in the Stuzo offices. After migrating over much of the previous work I had done to set up an end-to-end demo of the Hatch platform, I extended this to support pump-based transactions and to tailor the user experience to align with the scenarios used by the sales team. This experience brought to life the full set of capabilities within the platform and became an instrumental tool for the sales team as they approached new prospective customers.