Skip to content

CSE 4115L: Distributed Systems Lab 2026

A 12-week practical course building a distributed food-delivery backend through six lectures and six cumulative individual assignments.

Provider
[Provider]
Format
12 weeks · 6 lectures · 6 individual assignments · 36 lab hours
Status
In progress
Started
—
Finished
In progress
Course link
—

About this course ​

Build a Distributed Food Delivery Backend in one cumulative private repository. Each assignment extends the previous stage: independently deployed services become a gateway-backed platform, then gain asynchronous checkout, safe inventory and payments, delivery coordination, and replicated delivery state.

This is a fourth-year Computer Science and Engineering lab. The primary stack is Go, HTTP/JSON, Docker, Docker Compose, NGINX, PostgreSQL, and RabbitMQ. All programming assignments and assessments are individual.

In progress

This course is separate from the completed CSE 601 course. These pages contain the supplied syllabus and assignment briefs. Study dates, personal notes, submissions, and results have not yet been recorded.

Download the original 22-page course outline.

Learning outcomes ​

  • Implement and containerize independently deployed HTTP services with explicit error and timeout semantics.
  • Deploy and debug a multi-container platform with Docker Compose and an NGINX gateway.
  • Implement event-driven order workflows and interpret RabbitMQ acknowledgment and redelivery guarantees.
  • Build durable idempotency and concurrency protection for inventory and simulated payments.
  • Demonstrate leader election, fencing, basic primary-backup replication, and replica recovery.
  • Evaluate systems through automated tests, controlled faults, and measured performance.

Prerequisites and setup ​

Basic programming, HTTP/JSON, SQL, Git, and operating-systems knowledge. Use a laptop with Go, Docker/Compose, curl or an API client, a code editor, and an individual private repository. The outline assigns seed data, interface contracts, scaffolding, and grading harnesses to the instructor; those artifacts are not included here.

Use synthetic data, simulated payments, and local containers.

12-week schedule ​

Each session lasts three hours. Lecture weeks introduce the next assignment; the following week evaluates it.

WeekSessionCoverage and expected output
1Lecture 1Microservices, HTTP APIs, Docker; A1 brief
2Assignment 1Containerized Order and Restaurant services
3Lecture 2Compose, NGINX, PostgreSQL, horizontal scaling
4Assignment 2 + Quiz 1Gateway and shared persistent Order API; quiz covers Weeks 1–4
5Lecture 3RabbitMQ, asynchronous events, failures
6Assignment 3Reliable asynchronous checkout
7Lecture 4Idempotency, concurrency, Saga
8Assignment 4 + Quiz 2Consistent inventory and payment; quiz covers Weeks 5–8
9Lecture 5Coordinator election and fencing
10Assignment 5Delivery leader failover
11Lecture 6Replication, recovery, observability
12Assignment 6 + Quiz 3State replication and final integration; quiz covers Weeks 9–12

Lectures ​

The cumulative project ​

StageAdditionLab marks
A1Two communicating, containerized HTTP services5
A2NGINX gateway, two Order API instances, durable PostgreSQL state6
A3RabbitMQ, simulated Payment worker, Notification consumer7
A4Atomic inventory reservation, idempotency, Saga compensation, dual-write recovery8
A5Three delivery coordinators, election, durable fencing epochs7
A6Three delivery-state replicas, replay, recovery, end-to-end measurements7
TotalSix individual assignments40

See technical contracts and data ownership and the architecture templates.

Assessment ​

ComponentMarksCoverage
Six programming assignments40A1–A6; cumulative individual implementation
Midterm20Scenario-based written design, Weeks 1–6
Final25Scenario-based written design, cumulative Weeks 1–12
Three short-answer quizzes15Weeks 4, 8, 12; five questions × one mark per quiz
Total100

Assignment rubric: 40% implementation, 25% correctness and automated tests, 20% failure experiment and measured explanation, 15% README, design quality, and individual viva.

The midterm follows Week 6 and the final follows Week 12 in separate exam windows. Neither replaces a lab session. Both exams assess written system design, not live programming or deployment. See exam blueprints and sample quizzes.

Optional individual extension ​

After Assignment 4, an instructor-approved enhancement may restore up to three previously lost lab marks, capped at 40/40 for labs. It is optional, carries no penalty for opting out, and is not an exam alternative.

Contact-hour alignment ​

The outline provides 12 × 3 = 36 lab contact hours, while the published institute format requires 45. The remaining nine hours require approved additional classes, supervised practical time, or a formal timetable adjustment.

Submission and resources ​

The outline adapts MIT 6.5840 as a reference model. Its local 40/20/25/15 assessment distribution is the policy of this course, rather than MIT’s grading scheme. Reading reflections are optional and ungraded.

Built with VitePress · Notes © 2026 [Your Name]