To demonstrate wrapping service invocations in circuit breakers, we're going to create a version of the pichat message service that exposes endpoints for sending and retrieving messages. To send a message from a sender to a recipient, those two users must have a friendship. Friendships are handled by a social-graph-service. For the sake of simplicity, we'll code up a simple mock social-graph-service in Ruby, as we have done in previous recipes. The mock service will expose a single endpoint that lists friendships for a specified user. Here is the source code for the mock social-graph-service in Ruby:
require 'sinatra'require 'json'get '/friendships/:username' do content_type :json { 'username': params[:username], 'friendships': ...