Skip to content

CS 4459 - RPC Assignment

Building a Resilient RPC Calculator Service

Welcome to the RPC (Remote Procedure Call) assignment! In this project, you'll build a distributed calculator service using Python and gRPC, applying key concepts from distributed systems.


  • Getting Started


    Set up your development environment and learn the basics

    Setup Guide

  • Assignment Parts


    Four progressive parts building a resilient RPC service

    View Parts

  • Submission


    Requirements, deadlines, and grading rubric

    Submission Details

  • Code Examples


    Starter code and reference implementations

    View Examples


📚 What You'll Build

A calculator service that demonstrates:

  1. Basic RPC - Client-server communication with gRPC
  2. Failure Handling - Timeouts, retries, and error recovery
  3. Idempotency - Safe retry mechanisms for stateful operations
  4. Circuit Breaker - Preventing cascading failures

⏱️ Timeline

Week Tasks
Week 1 Complete Parts 1 & 2
Week 2 Complete Parts 3 & 4
Week 3 Testing, documentation, video demo

Due Date: [TBD]


🛠️ Technologies

  • Python 3.8+
  • gRPC (Google's RPC framework)
  • Protocol Buffers (Data serialization)

Start Here

New to gRPC? Begin with the Getting Started guide to set up your environment!