Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/microservices-patterns/ftgo-application/llms.txt

Use this file to discover all available pages before exploring further.

The FTGO Application (Food To Go) is the example code from Chris Richardson’s book Microservice Patterns. It implements a realistic food delivery platform using a full microservice architecture, demonstrating key patterns including Sagas for distributed transactions, CQRS for query optimization, event sourcing, and transactional messaging via Apache Kafka.

Architecture Overview

Explore the system design, service boundaries, and how the services communicate

Getting Started

Set up prerequisites and run the application locally with Docker Compose

Microservice Patterns

Learn how Sagas, CQRS, event sourcing, and transactional messaging are applied

API Reference

Browse REST endpoints and the GraphQL API across all services

Key patterns demonstrated

Saga Pattern

Maintain data consistency across services using orchestration-based sagas

CQRS

Separate reads from writes using the Order History Service and DynamoDB

Event Sourcing

Persist aggregates as a sequence of events in the Accounting Service

API Gateway

Compose multiple service responses at the edge via REST or GraphQL

Transactional Messaging

Publish domain events reliably using the outbox pattern with Kafka

Domain-Driven Design

Services modeled around bounded contexts with aggregate roots

Services at a glance

ServicePortResponsibility
Order Service8082Order lifecycle management, saga orchestration
Consumer Service8081Consumer registration and validation
Restaurant Service8084Restaurant and menu management
Kitchen Service8083Kitchen ticket creation and acceptance
Accounting Service8085Account authorization via event sourcing
Delivery Service8089Courier assignment and delivery tracking
Order History Service8086CQRS view of order history (DynamoDB)
API Gateway8087REST and GraphQL composition layer
The application requires significant memory (16 GB RAM recommended) as it runs many services and infrastructure components concurrently.

Build docs developers (and LLMs) love