Suman Basnet
Suman Basnet
PRODUCT ARCHITECTURE/2025-11/7 min read (785 words)

Why Local Businesses Need Connected Systems, Not Disconnected Tools

SB
Suman Basnet
Founder & Product Engineer · Osaka, Japan
The hidden operational tax of fragmented software in emerging markets, and why vertical integration outperforms modular SaaS for non-technical merchants.

The Human Glue Anti-Pattern

In modern software development circles, the prevailing wisdom promotes modular, best-of-breed SaaS tools. The standard recipe suggests picking one dedicated tool for storefronts, another for customer relationship management, a third for accounting, another for email campaigns, and connecting them all through integration middleware or automated webhooks.

In emerging markets like Nepal, this playbook fails in practice. Local store owners, wholesalers, and independent brands rarely employ software engineers or dedicated operations staff to monitor API tokens, resolve synchronization conflicts, or fix broken webhook endpoints. When software components do not natively communicate, human beings become the manual glue between them.

During my research and merchant conversations while designing HamroLink, I saw this daily operational tax firsthand. A customer would send an inquiry via Instagram Direct Message. The merchant would open their phone's photo gallery to find product photos, type prices manually, switch to a banking app to verify a payment screenshot sent over Viber, write the delivery address in a physical notebook, and finally telephone an independent delivery rider to coordinate pickup.

This is not a failure of merchant effort; it is an architectural failure of fragmented software. Every manual handover between disconnected tools creates delay, leads to inventory discrepancies, and leaves customer records trapped in messaging silos.

What Changed My Approach

When I began building software for commercial operators, I initially thought about building modular tools—perhaps a lightweight storefront builder, or an isolated inventory tracker. But observing actual merchant workflows forced me to reconsider. A business does not operate in isolated feature silos.

To a merchant, 'order management', 'payment verification', and 'customer messaging' are not three independent categories. They are a single continuous sequence: a buyer wants an item, pays for it, expects verification, and needs delivery. When software treats those steps as isolated products, friction multiplies.

This realization changed my architectural direction for HamroLink. Instead of creating another point solution that merchants would have to stitch together, I set out to build an integrated operating system where storefronts, live inventory, local payment gateways, customer histories, and courier dispatch operate over a shared state ledger.

A business does not think in isolated software categories. A business thinks in operational sequences: order placed, payment verified, inventory locked, customer notified, shipment dispatched.

How It Works: Designing Around Unified State

The core architectural principle of a connected business system is atomic state progression. In a unified architecture, when a buyer selects an item and completes payment via a local digital wallet QR code—such as eSewa or Khalti—the system executes a single coordinated state mutation:

First, the incoming payment webhook is verified cryptographically against the provider's signature. Second, the order state transitions from pending to confirmed. Third, the matching inventory ledger row is atomically decremented, preventing accidental overselling across physical storefronts or web channels. Fourth, a localized confirmation notification is generated, and a shipping manifest record is queued for the logistics partner.

Coordinated State Mutation Flow (Concept)typescript
// Atomic transaction ensuring zero data drift between modules
await prisma.$transaction(async (tx) => {
  const payment = await tx.payment.verify({ id: paymentId, signature });
  const order = await tx.order.update({
    where: { id: payment.orderId },
    data: { status: "PAID", confirmedAt: new Date() }
  });
  await tx.inventory.decrement({
    where: { sku: order.itemSku },
    quantity: order.quantity
  });
  await tx.courierManifest.create({
    data: { orderId: order.id, deliveryAddress: order.address }
  });
});

Eliminating Reconciliation Drifts

Because every subsystem shares this common relational foundation, merchants never have to reconcile spreadsheets against bank statements. The data is consistent by default.

What I Learned: The Cost of Vertical Integration

Building a unified system is significantly more challenging than assembling third-party tools. When you build the storefront, the catalog ledger, the payment gateway integration, and the courier dispatch pipeline under one umbrella, you take full responsibility for reliability and edge cases across the entire chain.

You must manage database migrations carefully across multi-tenant schemas, handle payment gateway downtime gracefully, and ensure that a spike in storefront browsing traffic never impacts backend inventory writes. We implemented PostgreSQL row-level isolation and Redis caching specifically to ensure that tenant data remains strictly partitioned and resilient.

However, the product outcome justifies the technical effort. Merchants who adopt an integrated system spend their time fulfilling orders and serving customers rather than manually copying addresses between phone apps.

What This Means in Practice

When designing software for markets with low technical overhead, resist the urge to unbundle. Unbundling works when customers have dedicated IT teams to manage integrations; it creates friction when the user is an independent business owner operating from a single smartphone.

Design your software around the complete lifecycle of a business event. Ask yourself: what happens immediately before this action, and what must happen immediately after it? If your software can handle the entire progression without requiring external manual glue, you have built something durable.

SUMMARY & KEY TAKEAWAYS

  • Disconnected software forces humans to act as manual data synchronization glue between incompatible tools.
  • A business thinks in sequential operations (order -> payment -> inventory -> dispatch), not isolated software categories.
  • Atomic state progression ensures that payments, stock ledgers, and delivery manifests stay synchronized without spreadsheets.
  • Vertical integration demands higher architectural discipline, but delivers vastly superior reliability for non-technical operators.

Frequently Explored Questions

Isn't it easier to build on top of existing platforms like Shopify?

Western commerce platforms often assume USD billing, international credit cards, and stable high-bandwidth networks. In emerging markets like Nepal, local digital wallets (eSewa, Khalti), cash-on-delivery workflows, and local courier networks require ground-up architectural alignment that off-the-shelf platforms cannot provide cleanly without costly third-party plugins.

How do you prevent a unified system from becoming bloated?

By focusing strictly on core operational sequences rather than adding marginal visual features. We prioritize the five fundamental steps of commerce—ordering, payment capture, inventory sync, customer identity, and courier handover—and keep secondary features modular.

TAGS:Product ArchitectureHamroLinkEmerging MarketsConnected SystemsCommerce OSSaaS