Luis Angel ParadaLet’s talk

02 / Global commerce

Multibrand commerce architecture. Three brands, one shared platform.

I own a distributed commerce platform and chose its multibrand architecture across frontend and backend. We launched three brands with the same engineering team, retaining distinct experiences and clear system boundaries.

At a glance

The platform challenge and my architecture decision.

Business challenge
Launch distinct brand experiences through shared capabilities, without growing the engineering team for each brand.
My responsibility
Own architecture across frontend and backend, engineering delivery and operational accountability.
Architecture decision
Share core capabilities with explicit brand boundaries. Coordinate distributed services through APIs, queues, topics and background workers.
Result
Three brands launched with the same engineering team. The shared platform operates across 40 transactional markets while retaining distinct brand experiences.
Diagram of a cloud-native global commerce platform spanning markets, services and delivery pipelines
40transactional markets
3live brands
Asyncqueues, topics and workers
IaCinfrastructure and delivery

My role

I own the platform direction, from multibrand architecture through engineering delivery and operational accountability.

01 / Business & architecture

More brands. The same engineering team.

I chose a shared multibrand architecture across frontend and backend. We launched three brands with the same engineering team. The shared foundation now supports further launches through common capabilities and explicit brand boundaries.

3

live brands

One platform direction, with explicit boundaries for different experiences and capabilities.

What is shared

Capabilities, not just code.

Common commerce journeys, service contracts, market configuration, integration patterns and delivery foundations create a reusable base.

What stays distinct

Identity and business rules.

Brand presentation, supported features, market policy, provider configuration and customer-data context remain deliberate choices.

02 / System boundaries

The system behind the storefront.

Six views into the platform’s responsibilities. Open each area for the technical detail, the boundary it owns and the trade-off that comes with it.

01

Brand experiences & operational tools

Different identities. Shared engineering capabilities.

React · Next.js · TypeScript · REST / GraphQL

Customer storefronts and internal tools are separate surfaces of the same platform. The multibrand frontend selects the brand at build time, reusing common journeys while keeping brand-specific presentation and behaviour behind explicit boundaries.

Shared foundation
Account, catalogue and commerce capabilities can evolve centrally instead of becoming a separate implementation for each brand.
Deliberate variation
Brand traits, capability flags, component seams, CMS adapters and design tokens preserve distinct experiences without scattering brand conditions through every feature.
Server-side ownership
Checkout and customer operations need server-side access checks. Internal operational tools coordinate multiple services; hiding a button is not a substitute for backend permission enforcement.
The engineering trade-off

Reuse does not mean every brand has identical features. A capability must be explicitly supported, disabled or adapted, and a shared change needs verification across the affected brand builds.

02

Commerce & financial lifecycles

Business invariants across independently failing systems.

Python services · typed APIs · payment-provider integrations

Orders, payments, financing, fraud, gifting, fulfilment and after-sales are connected domains with different responsibilities. The difficult work is coordinating their state, not simply connecting their APIs.

Order lifecycle
Order creation, capture, shipment, tracking, returns and refunds involve multiple transitions, including partial payments and split fulfilment.
Market-specific rules
Payment methods, financing eligibility, currencies and provider configuration vary by market and brand while using shared transaction contracts.
Customer and partner boundaries
CRM, retail inventory, communication and after-sales integrations extend the platform beyond the storefront and need clear sources of truth.
The engineering trade-off

A remote payment can succeed while a local update fails. Domain idempotency, explicit state transitions and reconciliation are needed; a database transaction cannot make every external side effect atomic.

03

Queues, topics & background workers

Decouple work without losing accountability.

Azure Service Bus · RQ / Redis · SQL scheduling · SQS / Lambda

The platform uses more than one asynchronous execution model. Event consumers, local jobs, scheduled business changes and serverless tasks have different ordering, persistence and retry requirements.

Azure event transport
Queues handle dedicated processing paths; topics and subscriptions let independent integrations react to relevant events. Consumers have their own completion, retry and dead-letter responsibilities.
RQ background jobs
Redis-backed RQ workers handle retail inventory-cache refresh and access-log work outside request handling. Job storage must be assessed separately from rebuildable cache storage.
Scheduled and serverless work
A database-backed scheduler persists future price changes. Asset tasks use SQS and Lambda. These are distinct mechanisms, not different names for the same queue.
The engineering trade-off

Some work can scale across consumers; other flows deliberately use a single executor. Ordering requirements and replay safety determine that choice. A running worker is not proof that work is progressing.

04

Data ownership, search & projections

Fast reads, explicit authority and recoverable state.

PostgreSQL · DynamoDB · Algolia · Redis-compatible caches

The commerce core, configuration and customer domains own different data. Search indexes and a relational replica provide specialised read models derived from upstream changes; they are not automatically the authority for financial transactions.

Derived read models
Event consumers update search and relational projections for discovery, operational queries and exports. Supported replay paths can fetch current upstream data rather than reapply an obsolete payload.
Brand and market context
Configuration, customer data and indexes need explicit brand/market scope. Shared infrastructure must not imply unintentional sharing of customer or commercial state.
Freshness and recovery
Caches and projections require invalidation, freshness monitoring and rebuild strategies. A submitted indexing task is not the same as a result already being searchable.
The engineering trade-off

Specialised read models improve access patterns but introduce eventual consistency. Capacity planning must include aggregate database connections, upstream load and the cost of rebuilding derived data.

05

Cloud, edge & operating topology

Architecture continues after a feature is released.

AWS EKS · Docker · Terraform · Cloudflare · observability

Container workloads, infrastructure-as-code and edge policies form the operating environment. APIs, event consumers and maintenance jobs have different resource, scaling and recovery characteristics.

Workload separation
Kubernetes manifests distinguish APIs, workers and scheduled jobs, with independent replica counts, resource budgets, health checks and secret integration.
Edge policy
Domain routing, locale redirects, cache keys, security rules and maintenance behaviour are part of the platform contract, not decorative infrastructure.
Edge coordination
Cache-warming work uses Worker service bindings, KV and Durable Objects to coordinate dispatch, regional completion, duplicate callbacks and recovery deadlines.
The engineering trade-off

Desired infrastructure configuration is not proof of live health. Cache-hit behaviour, worker progress, database saturation and recovery need their own evidence, beyond a green deployment or liveness probe.

06

Delivery governance & engineering ownership

Independent services. Coordinated change.

Versioned contracts · CI/CD · cross-repository coordination · QA

A shared platform evolves across independent repositories, package versions and release boundaries. Delivery governance connects architecture decisions to changes that can be reviewed, verified and traced.

Cross-repository evolution
Shared authentication, market and payment contracts require compatible rollout. Repository coordination tracks source revisions rather than treating a folder of clones as a release.
Layered verification
Service tests, frontend tests, journey checks and operational diagnostics answer different questions. A broad test inventory is not a guarantee that every cross-brand business flow is covered.
Accountable ownership
Architecture direction, release policy, vendor choices, team responsibilities and operational readiness must support the same business objective.
The engineering trade-off

Shared libraries reduce duplication but increase the impact of a common mistake. Exact revisions, compatibility checks and clear change ownership are essential to keeping reuse sustainable.

03 / Distributed execution

Follow the work, not just the API.

These simplified flows explain the responsibilities across asynchronous boundaries. They are illustrative, not a published deployment topology or an exhaustive service map.

A payment changes order state

  1. 1Provider callback
  2. 2Validated event
  3. 3Domain consumer
  4. 4Transaction / order update
  5. 5Downstream reactions

A useful review follows the whole lifecycle: authentication, duplicate callbacks, uncertain remote success, partial capture or refund, and recovery after an interrupted update.

A catalogue change reaches discovery

  1. 1Upstream change
  2. 2Event transport
  3. 3Projection worker
  4. 4Search / read-model update
  5. 5Customer-facing read

The read model can lag behind its source. Replays, full rebuilds, deletion handling and freshness checks are as important as the initial event handler.

A retail cache refresh runs off-request

  1. 1Refresh request or schedule
  2. 2RQ job
  3. 3Background worker
  4. 4Inventory-cache update
  5. 5Retail / customer read

Separating background work protects request latency, but concurrent refreshes, timeouts and Redis/job durability still need an explicit operating policy.

04 / Engineering judgement

Complexity is an ownership problem.

Owning a distributed platform means understanding where it can fail, who owns the state and how it recovers. These are the operating principles I use to evaluate the architecture, not a claim that every control is already complete.

01

Replay without duplicate business effects

A delivery retry and a new business operation are different things. Idempotency belongs at the domain boundary, not only in the broker.

02

Authorise across brand boundaries

Validate customer, order, market and brand context at service entry points. Shared infrastructure should not weaken access control.

03

Observe progress, not only availability

Consumer lag, failed delivery state, projection freshness and reconciliation backlog reveal issues that pod health cannot.

04

Plan for partial success

Remote side effects can succeed independently. Make repair, reconciliation and escalation part of the lifecycle rather than an afterthought.

05 / Platform leverage

Make the next brand a bounded change.

My approach is to turn brand onboarding into explicit contracts and release responsibilities. Reuse should reduce repeated decisions, while preserving the checks each brand needs.

  1. 01

    Define the capability contract

    Agree which journeys the brand supports: discovery, checkout, financing, customer account, certificates and after-sales. Record intentional differences.

  2. 02

    Configure the brand and market

    Set domains, languages, channels, provider identities, templates and catalogue mappings. Make compatibility defaults explicit.

  3. 03

    Verify isolation and integration

    Check customer/order access, event routing, data namespaces and partner configuration. Test that one brand cannot act on another brand’s state.

  4. 04

    Prepare release and recovery

    Identify affected services and package versions, then define rollout, rollback, replay, monitoring and operational ownership.

  5. 05

    Measure the onboarding effort

    Track engineering effort, lead time, defects and ongoing support. Those measures show whether the shared foundation is actually creating leverage.

Key decisions

What I chose and why it mattered.

01

One platform instead of duplicated stacks

Chose shared frontend and backend capabilities with explicit brand boundaries. Build-time frontend selection, brand traits and common service contracts make reuse deliberate rather than accidental.

02

Delivery as an observable system

Standardised infrastructure and delivery around Terraform, ArgoCD and operational telemetry so teams could release frequently with evidence.

03

Own the edge migration

Led the staged Akamai-to-Cloudflare migration, connecting edge configuration, delivery planning and operational ownership.

01 / Context

One platform, distinct responsibilities.

The architecture has to connect brand experiences, commerce state, customer systems, background work and operational ownership. Shared foundations must coexist with brand-specific capabilities and market rules.

02 / System

More than synchronous services.

Containerised services on AWS EKS operate alongside Azure queues and topics, RQ background jobs, persistent price scheduling, serverless asset processing and derived search/data models. Each execution model brings different recovery and consistency requirements.

03 / Ownership

Shared architecture. Accountable operations.

My scope connects the multibrand architecture, infrastructure and delivery foundations with operational ownership. The platform case includes the staged Akamai-to-Cloudflare migration and the responsibilities across services, integrations and engineering teams.

My scope

Multibrand architecture · distributed systems · technology roadmap · delivery governance · operational ownership

Continue

See how I can lead AI engineering transformation.

Explore AI transformation