B2B SaaS Platform

An case study from my work on backend systems, focusing on distributed workflows, service communication, and reliability.

Professional Experience · Backend Engineering

TL;DR

I worked on the backend of a B2B SaaS platform built around multiple cooperating services.

My work started with writing unit tests for an existing backend service, then expanded into implementing REST and gRPC APIs, building backend features to making design decisions, and understanding how distributed services coordinate under failure.

This case study focuses on the engineering problems I encountered and the design decisions I worked with.

My Role

I worked as a backend-focused Software Engineer within an existing engineering environment. Rather than designing the entire platform from scratch, my work involved understanding existing services, implementing changes safely, and gradually taking on more complex backend problems.

  • Implemented backend features across production services
  • Developed and maintained REST APIs
  • Implemented and worked with gRPC-based service communication
  • Added and maintained automated tests for backend services
  • Worked with asynchronous processing and distributed workflows
  • Investigated failure scenarios and implemented recovery mechanisms
  • Contributed to data modeling and service integration

System Context

The platform consists of multiple backend services that communicate through synchronous APIs and asynchronous workflows.

Some operations are short-lived request/response flows, while others continue asynchronously and may involve multiple services before reaching a terminal state.

The architecture shown here is intentionally conceptual. Internal service names, topology, business rules, and implementation details have been omitted.

Engineering Principle

Distributed operations should remain correct even when individual services, network calls, or asynchronous operations fail independently.

The systems I worked on therefore had to account for retries, partial completion, duplicate processing, timeouts, and inconsistent intermediate state.

Why This Is Hard

The system is composed of independently operating services, so a single business operation may span multiple requests, services, and asynchronous steps.

A failure in one part of the workflow does not necessarily mean that the overall operation failed. Conversely, a request succeeding does not always mean that every downstream operation has completed successfully.

This introduces problems around:

  • Partial completion
  • Retries and duplicate processing
  • Timeouts and uncertain outcomes
  • Asynchronous state transitions
  • Service-to-service failures
  • Maintaining consistent state

Core Requirements

  • Services must communicate reliably across synchronous and asynchronous boundaries
  • Long-running operations must not depend on a single request remaining alive
  • Retries must not create unintended duplicate effects
  • Failures should be isolated where possible
  • Data transitions must remain explainable and recoverable

Technical Constraints

  • New functionality had to integrate with existing services
  • Backward compatibility was required
  • Some workflows were asynchronous and long-running
  • Services could fail independently
  • Operational complexity had to remain manageable

Architecture Overview

At a high level, the platform follows a service-oriented architecture where client requests enter through backend APIs and are handled by specialized services.

Synchronous APIs are used where an immediate response is required, while longer-running operations can transition into asynchronous processing.

This separation allows individual services to perform work independently and reduces the need to keep client requests open while backend processing continues.

Diagram intentionally uses generic service boundaries and does not represent the company's exact production topology.

Scope of This Case Study

This case study describes engineering concepts and problems I worked with.

The goal is to explain the engineering reasoning behind the work rather than reproduce the company's internal architecture.

Deep Dive

A detailed look at one of the distributed-systems problems I worked on in production.