← Back to case studies

Case study / CommerceIQ

Role period: Aug 2022 – Nov 2023

Building Media Planner with Java microservices and AWS

From an idea to a working system.

Building Media Planner from inception, connecting Java services and AWS workflows, and guiding the team along the way.

Role

Software Development Engineer II · Media Planner

Scope & ownership

An end-to-end Media Planner product, with application services, automated workflows, and concurrency improvements.

Tools & practices
  • Java
  • Spring Boot
  • AWS Lambda
  • SQS
  • S3
  • Step Functions
0 → 1

Media Planner built from inception

A new Media Planner product built from inception.

The context

Media Planner needed an architecture that could support automated media-planning workflows. The work combined application services, serverless orchestration, concurrency, and the practical task of bringing a new product into operation.

My contribution

  1. 01

    Led development of the microservices architecture using Java, Spring Boot, and multithreading.

  2. 02

    Developed a serverless Step Functions pipeline using AWS Lambda, SQS, and S3.

  3. 03

    Provided technical leadership and mentoring throughout the end-to-end build.

  4. 04

    Resolved concurrency issues through batch-processing optimizations that reduced infrastructure costs.

Constraints & scope

  • A new Media Planner product built from inception.
  • Java services, AWS orchestration, and concurrent batch processing.

Evidence & validation

Reported outcome

  • End-to-end Media Planner implementation and qualitative infrastructure cost reductions through batch optimization.
Evidence boundary

The delivered scope and outcome are based on my professional experience. Internal benchmarks, production topology, rollout records, and alternative evaluations are not published here. The engineering considerations below describe how I reason about this class of system; they do not assert undisclosed implementation details.

How I would evaluate this system

  • Test duplicate events, retried tasks, partial batch failures, and poison messages against idempotency boundaries.
  • Measure queue age, batch latency, downstream saturation, and cost per completed planning operation.
  • Compare bounded concurrency levels using representative workloads and a fixed success criterion.

Technical analysis

Engineering considerations for this class of system. The delivered work is described in the contribution and implementation sections.

A successful workflow is not an exactly-once business effect

Retries are useful recovery mechanisms, but a retried task can repeat a side effect. An automated planning workflow needs explicit idempotency boundaries: identify the business operation, distinguish retryable failures from invalid input, and make repeated execution converge on the intended result. Orchestration alone does not prove those properties.

AWS Lambda: idempotent processing practices (opens in a new tab)

Bound concurrency and isolate batch failures

Concurrency should fit downstream capacity. For SQS-backed Lambda processing, partial batch responses can prevent successful records from being retried along with failed ones. Evaluate queue age, processing latency, retry volume, and downstream saturation together; raising parallelism without those signals can move a bottleneck into another service.

AWS: handling SQS batch failures (opens in a new tab)

System overview

An illustrative workflow, not a production topology
01Planning input
02Orchestration
03Processing
04Planning output
An illustrative workflow, not a production topology

Service boundaries, orchestration, and team ownership need to fit together. A useful architecture makes the next feature easier to build and the next operational problem easier to understand.

Results

An end-to-end Media Planner implementation, with serverless workflows and improvements to concurrent processing.

Next case study / GlobalLogic

A faster feedback loop