---
title: "Deconstructing Monolithic Apps with SHIFT Commerce"
description: "SHIFT Commerce describes its move from a monolithic application toward microservices, while arguing that architectural change should address concrete problems rather than follow fashion. The company identifies communication overhead, governance and high-risk deployments, and language or infrastructure limitations as reasons to extract functionality, including its Order Management Suite, admin panel, and integration system. SHIFT uses managed Apache Kafka on Heroku as an asynchronous event stream, with chronologically ordered, durable messages organized into topics so services can maintain local datasets. Its eight-step migration progressively adds producers, builds a consumer-backed database, tests and replicates logic, enables feature-flagged traffic, exchanges events, and removes deprecated monolith code. SHIFT reports more regular releases, lower latency on I/O-restricted API calls, and prevention of user-facing outages, while saying the migration remains ongoing."
---

# Deconstructing Monolithic Apps with SHIFT Commerce

[Heroku](https://yomu.fyi/company/heroku) · Ryan Townsend · Mar 13, 2018

**Type:** Explainer

## Summary

SHIFT Commerce describes its move from a monolithic application toward microservices, while arguing that architectural change should address concrete problems rather than follow fashion. The company identifies communication overhead, governance and high-risk deployments, and language or infrastructure limitations as reasons to extract functionality, including its Order Management Suite, admin panel, and integration system. SHIFT uses managed Apache Kafka on Heroku as an asynchronous event stream, with chronologically ordered, durable messages organized into topics so services can maintain local datasets. Its eight-step migration progressively adds producers, builds a consumer-backed database, tests and replicates logic, enables feature-flagged traffic, exchanges events, and removes deprecated monolith code. SHIFT reports more regular releases, lower latency on I/O-restricted API calls, and prevention of user-facing outages, while saying the migration remains ongoing.

## Context

SHIFT considers whether and how to break down a monolith while preserving productivity, reliability, scalability, and agility. The post cautions that poor code structure and poor scalability are not inherently monolith problems, and identifies communication overhead, governance constraints, high-risk deployments, and language or infrastructure limitations as possible reasons to adopt microservices.

## Approach / What changed

SHIFT progressively extracts services using managed Apache Kafka on Heroku. The process adds producers to the monolith, builds a consumer-backed data store, tests event processing, replicates logic, enables feature-flagged traffic for selected accounts, exchanges events between the new service and monolith, validates action events, and removes deprecated code after migration.

## Takeaways

- Microservices do not automatically solve poor software architecture; a poorly structured monolith can become many poorly structured services.
- SHIFT uses Apache Kafka topics to pass events asynchronously, allowing services to maintain local datasets while avoiding chains of real-time service calls.
- Kafka-driven extraction uses feature toggles and staged validation, so production traffic can be ramped up before the old monolith logic is removed.

**Tags:** [Heroku](https://yomu.fyi/topic/heroku), [Kafka](https://yomu.fyi/topic/kafka), [Microservices](https://yomu.fyi/topic/microservices)

- Source: [Heroku](https://www.heroku.com/blog/monolithic-applications-into-services)
- Source URL: https://www.heroku.com/blog/monolithic-applications-into-services
- Ingested by Yomu: 2026-09-09T14:26:14.731Z

[Read original post](https://www.heroku.com/blog/monolithic-applications-into-services)
