twirp

Contents

Roadmap info from roadmap website

Twirp

Twirp is a framework for service-to-service communication emphasizing simplicity and minimalism. It generates routing and serialization from API definition files and lets you focus on your application’s logic instead of thinking about folderol like HTTP methods and paths and JSON.

Twirp is similar to gRPC, but without the custom HTTP server and transport implementations: it runs on the standard library’s extremely-well-tested-and-high-performance net/http Server. It can run on HTTP 1.1, not just http/2, and supports JSON serialization for easy debugging.

Visit the following resources to learn more:

Twirp__

  • Purpose: A lightweight RPC framework using Protobuf or JSON.

  • Best For: Simpler RPC-based microservices with minimal setup and overhead.

    Example:

    twirpHandler := pb.NewHaberdasherServer(&Server{}, nil)
    http.ListenAndServe(":8080", twirpHandler)

Twirp__ - Lightweight RPC Framework

Solution Example: Simple Microservices for a SaaS Platform

  • Use Case: A SaaS platform with simple, small microservices (e.g., billing, authentication) that need efficient communication.

  • Framework Usage: Twirp allows each service to use lightweight RPC, supporting both Protobuf and JSON for simple inter-service communication.

  • Workflow:

    • BillingService communicates with AuthService using Twirp for authentication checks before processing payments.
    • Services communicate over HTTP with minimal overhead using Protobuf for serialization.

    Example:

    twirpHandler := pb.NewBillingServer(&Server{}, nil)
    http.ListenAndServe(":8080", twirpHandler)
#ready #online #reviewed #microservices #go #frameworks