100% found this document useful (7 votes)
49 views

Download Complete (Ebook) gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes by Kasun Indrasiri, Danesh Kuruppu ISBN 9781492058335, 1492058335, B0845YMM37 PDF for All Chapters

The document promotes various eBooks available for download, focusing on topics such as gRPC, cloud-native applications, and software development. It highlights the book 'gRPC: Up and Running' by Kasun Indrasiri and Danesh Kuruppu, which serves as a comprehensive guide for developers on building distributed applications using gRPC. The book covers fundamental concepts, practical examples, and advanced features related to gRPC, making it a valuable resource for developers and architects in the field.

Uploaded by

otaizamavsi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (7 votes)
49 views

Download Complete (Ebook) gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes by Kasun Indrasiri, Danesh Kuruppu ISBN 9781492058335, 1492058335, B0845YMM37 PDF for All Chapters

The document promotes various eBooks available for download, focusing on topics such as gRPC, cloud-native applications, and software development. It highlights the book 'gRPC: Up and Running' by Kasun Indrasiri and Danesh Kuruppu, which serves as a comprehensive guide for developers on building distributed applications using gRPC. The book covers fundamental concepts, practical examples, and advanced features related to gRPC, making it a valuable resource for developers and architects in the field.

Uploaded by

otaizamavsi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 67

Download Full Version ebook - Visit ebooknice.

com

(Ebook) gRPC: Up and Running: Building Cloud


Native Applications with Go and Java for Docker
and Kubernetes by Kasun Indrasiri, Danesh Kuruppu
ISBN 9781492058335, 1492058335, B0845YMM37
https://ebooknice.com/product/grpc-up-and-running-building-
cloud-native-applications-with-go-and-java-for-docker-and-
kubernetes-10690006

Click the button below to download

DOWLOAD EBOOK

Discover More Ebook - Explore Now at ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason;


Viles, James ISBN 9781459699816, 9781743365571,
9781925268492, 1459699815, 1743365578, 1925268497
https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374

ebooknice.com

(Ebook) Spring Boot: Up and Running: Building Cloud Native


Java and Kotlin Applications by Mark Heckler ISBN
9781492076988, 1492076988
https://ebooknice.com/product/spring-boot-up-and-running-building-
cloud-native-java-and-kotlin-applications-23064348

ebooknice.com

(Ebook) Design Patterns for Cloud Native Applications:


Patterns in Practice Using APIs, Data, Events, and Streams
by Kasun Indrasiri, Sriskandarajah Suhothayan ISBN
9781492090717, 1492090719
https://ebooknice.com/product/design-patterns-for-cloud-native-
applications-patterns-in-practice-using-apis-data-events-and-
streams-34020848
ebooknice.com

(Ebook) Beginning Cloud Native Development with


MicroProfile, Jakarta EE, and Kubernetes: Java DevOps for
Building and Deploying Microservices-based Applications by
Tarun Telang ISBN 9781484288313, 1484288319
https://ebooknice.com/product/beginning-cloud-native-development-with-
microprofile-jakarta-ee-and-kubernetes-java-devops-for-building-and-
deploying-microservices-based-applications-47553252
ebooknice.com
(Ebook) gRPC: ■■■■■■ ■ ■■■■■■■■■■■■ ■■■■■■■■ ■■■■■■■■■■
Go ■ Java ■■■ Docker ■ Kubernetes by ■■■■■ ■■■■■■■■■,
■■■■■ ■■■■■■ ISBN 9785446117376, 5446117379
https://ebooknice.com/product/grpc-go-java-docker-kubernetes-23474446

ebooknice.com

(Ebook) SAT II Success MATH 1C and 2C 2002 (Peterson's SAT


II Success) by Peterson's ISBN 9780768906677, 0768906679

https://ebooknice.com/product/sat-ii-success-
math-1c-and-2c-2002-peterson-s-sat-ii-success-1722018

ebooknice.com

(Ebook) Matematik 5000+ Kurs 2c Lärobok by Lena


Alfredsson, Hans Heikne, Sanna Bodemyr ISBN 9789127456600,
9127456609
https://ebooknice.com/product/matematik-5000-kurs-2c-larobok-23848312

ebooknice.com

(Ebook) Cloud Native Devops with Kubernetes: Building,


Deploying, and Scaling Modern Applications in the Cloud,
2nd Edition by Justin Domingus & John Arundel ISBN
9781098116828, 1098116828, B09VTLRTWH
https://ebooknice.com/product/cloud-native-devops-with-kubernetes-
building-deploying-and-scaling-modern-applications-in-the-cloud-2nd-
edition-46225490
ebooknice.com

(Ebook) Software Development with Go: Cloud-Native


Programming using Golang with Linux and Docker by Nanik
Tolaram ISBN 9781484287309, 9781484287316, 1484287304,
1484287312
https://ebooknice.com/product/software-development-with-go-cloud-
native-programming-using-golang-with-linux-and-docker-47453784

ebooknice.com
gRPC: Up and Running
Building Cloud Native Applications with Go and Java
for Docker and Kubernetes

Kasun Indrasiri and Danesh Kuruppu


gRPC: Up and Running
by Kasun Indrasiri and Danesh Kuruppu
Copyright © 2020 Kasun Indrasiri and Danesh Kuruppu. All rights
reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North,
Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales
promotional use. Online editions are also available for most titles
(http://oreilly.com). For more information, contact our
corporate/institutional sales department: 800-998-9938 or
corporate@oreilly.com.

Acquisitions Editor: Ryan Shaw

Development Editor: Melissa Potter

Production Editor: Deborah Baker

Copyeditor: Charles Roumeliotis

Proofreader: Kim Cofer

Indexer: WordCo Indexing Services, Inc.

Interior Designer: David Futato

Cover Designer: Karen Montgomery

Illustrators: Rebecca Demarest and Jenny Bergman

February 2020: First Edition


Revision History for the First Edition
2020-01-23: First Release

See http://oreilly.com/catalog/errata.csp?isbn=9781492058335 for


release details.
The O’Reilly logo is a registered trademark of O’Reilly Media, Inc.
gRPC: Up and Running, the cover image, and related trade dress are
trademarks of O’Reilly Media, Inc.
The views expressed in this work are those of the authors, and do
not represent the publisher’s views. While the publisher and the
authors have used good faith efforts to ensure that the information
and instructions contained in this work are accurate, the publisher
and the authors disclaim all responsibility for errors or omissions,
including without limitation responsibility for damages resulting from
the use of or reliance on this work. Use of the information and
instructions contained in this work is at your own risk. If any code
samples or other technology this work contains or describes is
subject to open source licenses or the intellectual property rights of
others, it is your responsibility to ensure that your use thereof
complies with such licenses and/or rights.
978-1-492-05833-5
[LSI]
Preface

Nowadays software applications are often connected with each other


over computer networks using inter-process communication
technologies. gRPC is a modern inter-process communication style
based on high-performance RPCs (remote procedure calls) for
building distributed applications and microservices. With the advent
of microservices and cloud native applications, the adoption of gRPC
is exponentially growing.

Why Did We Write This Book?


With the increasing adoption of gRPC, we felt that developers need a
comprehensive book on gRPC, a book that you can use as the
ultimate reference guide in every stage of the development cycle of
your gRPC applications. There are a lot of resources and code
samples for gRPC all over the place (documentation, blogs, articles,
conference talks, and so on), but there’s no single resource that you
can use to build gRPC applications. Also, there aren’t any resources
on the internals of the gRPC protocol and how it works under the
hood.
We wrote this book to overcome those challenges and give you a
comprehensive understanding of the fundamentals of gRPC, how it
differs from conventional inter-process communication technologies,
real-world gRPC communication patterns, how to build gRPC
applications using Go and Java, how it works under the hood, how
to run gRPC applications in production, and how gRPC works with
Kubernetes and the rest of the ecosystem.
Who Is This Book For?
The book is most directly relevant to developers who are building
distributed applications and microservices using different inter-
process communication technologies. When it comes to building
such applications and services, developers need to learn the
fundamentals of gRPC, when and how to use it for inter-service
communication, best practices for running gRPC services in
production, and so on. Also, architects who are adopting
microservices or cloud native architecture and designing how the
services should communicate will get a lot of insight from the book
because it compares and contrasts gRPC with other technologies and
provides guidelines on when to use and when to avoid it.
We assume that both developers and architects have a basic
understanding of the fundamentals of distributed computing such as
inter-process communication techniques, service-oriented
architecture (SOA), and microservices.
How This Book Is Organized
The book is written in such a way that the theoretical concepts are
explained using real-world use cases. Throughout the book, we have
extensively used code examples featuring Go and Java to give
readers hands-on experience with each of the concepts that they
learn. We have organized the book into eight chapters.
Chapter 1, Introduction to gRPC
This chapter gives you a basic understanding of gRPC
fundamentals and compares it with similar inter-process
communication styles such as REST, GraphQL, and other RPC
technologies.

Chapter 2, Getting Started with gRPC


This chapter is where you get the first hands-on experience with
building a complete gRPC application using either Go or Java.

Chapter 3, gRPC Communication Patterns


In this chapter, you will explore gRPC communication patterns
using real-world examples.

Chapter 4, gRPC: Under the Hood


If you are an advanced gRPC user interested in knowing the
internals of gRPC, this is the chapter to learn them. This chapter
teaches you every step of gRPC communication between server
and client and how it works over the network.

Chapter 5, gRPC: Beyond the Basics


This chapter teaches you some of the most important advanced
features of gRPC such as interceptors, deadlines, metadata,
multiplexing, load balancing, and so on.
Chapter 6, Secured gRPC
This chapter gives you a comprehensive understanding of how to
secure communication channels and how we authenticate and
control the access of users to gRPC applications.

Chapter 7, Running gRPC in Production


This chapter walks you through the entire development life cycle
of gRPC applications. We cover testing gRPC applications,
integration with CI/CD, deploying and running on Docker and
Kubernetes, and observing gRPC applications.
Chapter 8, The gRPC Ecosystem
In this chapter, we discuss some of the helpful supporting
components built around gRPC. Most of these projects are useful
when building real-world applications using gRPC.

Using Code Examples


All the code examples and supplemental materials for this book are
available for download at https://grpc-up-and-running.github.io. We
highly recommend trying out the samples available in this repository
as you are reading the book. It will give you a better understanding
of the concepts that you’re learning.
These code examples are maintained and kept up to date with the
latest versions of the libraries, dependencies, and development
tools. Occasionally you may find that the code examples in the text
and the examples in the repository slightly differ. We highly
encourage you to send a pull request (PR) if you come across any
issues or improvements related to the code samples.
You may use this book’s example code in your own programs and
documentation. You do not need to contact us for permission unless
you’re reproducing a significant portion of the code. For example,
writing a program that uses several chunks of code from this book
does not require permission. Selling or distributing examples from
O’Reilly books does require permission. Answering a question by
citing this book and quoting example code does not require
permission. Incorporating a significant amount of example code from
this book into your product’s documentation does require
permission.
We appreciate, but generally do not require, attribution. An
attribution usually includes the title, author, publisher, and ISBN. For
example: “gRPC: Up and Running by Kasun Indrasiri and Danesh
Kuruppu (O’Reilly). Copyright 2020 Kasun Indrasiri and Danesh
Kuruppu, 978-1-492-05833-5.”
If you feel your use of code examples falls outside fair use or the
permission given above, feel free to contact us at
permissions@oreilly.com.

Conventions Used in This Book


The following typographical conventions are used in this book:
Italic
Indicates new terms, URLs, email addresses, filenames, and file
extensions.

Constant width
Used for program listings, as well as within paragraphs to refer to
program elements such as variable or function names, databases,
data types, environment variables, statements, and keywords.

Constant width bold


Shows commands or other text that should be typed literally by
the user.

Constant width italic


Shows text that should be replaced with user-supplied values or
by values determined by context.

TIP
This element signifies a tip or suggestion.

NOTE
This element signifies a general note.

WARNING
This element indicates a warning or caution.

O’Reilly Online Learning

NOTE
For more than 40 years, O’Reilly Media has provided technology and
business training, knowledge, and insight to help companies succeed.

Our unique network of experts and innovators share their knowledge


and expertise through books, articles, conferences, and our online
learning platform. O’Reilly’s online learning platform gives you on-
demand access to live training courses, in-depth learning paths,
interactive coding environments, and a vast collection of text and
video from O’Reilly and 200+ other publishers. For more information,
please visit http://oreilly.com.
Visit https://ebooknice.com to
discover a wide range of
eBooks across various genres.
Enjoy exclusive deals and
discounts to enhance your
reading experience. Start your
digital reading journey today!
How to Contact Us
Please address comments and questions concerning this book to the
publisher:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

800-998-9938 (in the United States or Canada)

707-829-0515 (international or local)

707-829-0104 (fax)

We have a web page for this book, where we list errata, examples,
and any additional information. You can access this page at
https://oreil.ly/gRPC_Up_and_Running.
Email bookquestions@oreilly.com to comment or ask technical
questions about this book.
For more information about our books, courses, conferences, and
news, see our website at http://www.oreilly.com.
Find us on Facebook: http://facebook.com/oreilly
Follow us on Twitter: http://twitter.com/oreillymedia
Watch us on YouTube: http://www.youtube.com/oreillymedia

Acknowledgments
Our grateful thanks go to the tech reviewers of this book, Julien
Andrieux, Tim Raymond, and Ryan Michela. Also, we would like to
thank our Development Editor Melissa Potter for her guidance and
support, and our Acquisitions Editor Ryan Shaw for all the support
given. Last but not least we thank the entire gRPC community for
creating such a great open source project.
Chapter 1. Introduction to
gRPC

Modern software applications rarely operate in isolation. Rather, they


are connected with each other through computer networks and
communicate and coordinate their actions by passing messages to
one another. Therefore, a modern software system is a collection of
distributed software applications that are running at different
network locations and communicate with each other with message
passing using different communication protocols. For example, an
online retail software system comprises multiple distributed
applications such as an order management application, catalog
application, databases, and so on. To implement the business
functionalities of an online retail system, it is required to have
interconnectivity between those distributed applications.

NOTE
Microservices Architecture
Microservices architecture is about building a software application as a
collection of independent, autonomous (developed, deployed, and
scaled independently), business capability–oriented, and loosely coupled
services.1

With the advent of microservices architecture and cloud native


architecture, conventional software applications that are built for
multiple business capabilities are further segregated into a collection
of fine-grained, autonomous, and business capability–oriented
entities known as microservices. Therefore, a microservices-based
software system also requires the microservices to be connected
through the network using inter-process (or inter-service or inter-
application) communication techniques. As an example, if we
consider the same online retail system implemented using
microservices architecture, you will find multiple interconnected
microservices such as order management, search, checkout,
shipping, and so on. Unlike conventional applications, the number of
network communication links proliferates because of the fine-grained
nature of microservices. Therefore, no matter the architectural style
(conventional or microservices architecture) you use, inter-process
communication techniques are one of the most important aspects of
modern distributed software applications.
Inter-process communications are usually implemented using
message passing with a synchronous request-response style or
asynchronous event-driven styles. In the synchronous
communication style, the client process sends a request message to
the server process over the network and waits for a response
message. In asynchronous event-driven messaging, processes
communicate with asynchronous message passing by using an
intermediary known as an event broker. Depending on your business
use case, you can select the communication pattern that you want
to implement.
When it comes to building synchronous request-response style
communication for modern cloud native applications and
microservices, the most common and conventional approach is to
build them as RESTful services, where you model your application or
service as a collection of resources that can be accessed and have
their state changed via network calls that take place over the HTTP
protocol. However, for most use cases RESTful services are quite
bulky, inefficient, and error-prone for building inter-process
communication. It is often required to have a highly scalable, loosely
coupled inter-process communication technology that is more
efficient than RESTful services. This is where gRPC, a modern inter-
process communication style for building distributed applications and
microservices, comes into the picture (we’ll compare and contrast
gRPC with RESTful communication later in this chapter). gRPC
primarily uses a synchronous request-response style for
communication but can operate in fully asynchronous or streaming
mode once the initial communication is established.
In this chapter, we’ll explore what gRPC is and the key motivations
behind inventing such an inter-process communication protocol. We
dive into the key building blocks of the gRPC protocol with the help
of some real-world use cases. Also, it’s important to have a solid
understanding of inter-process communication techniques and how
they have evolved over time so that you can understand the key
problems that gRPC is trying to solve. So, we’ll walk through those
techniques and compare and contrast each of them. Let’s begin our
discussion on gRPC by looking at what gRPC is.

What Is gRPC?
gRPC (the “g” stands for something different in every gRPC release)
is an inter-process communication technology that allows you to
connect, invoke, operate, and debug distributed heterogeneous
applications as easily as making a local function call.
When you develop a gRPC application the first thing that you do is
define a service interface. The service interface definition contains
information on how your service can be consumed by consumers,
what methods you allow the consumers to call remotely, what
method parameters and message formats to use when invoking
those methods, and so on. The language that we specify in the
service definition is known as an interface definition language (IDL).
Using that service definition, you can generate the server-side code
known as a server skeleton, which simplifies the server-side logic by
providing low-level communication abstractions. Also, you can
generate the client-side code, known as a client stub, which
simplifies the client-side communication with abstractions to hide
low-level communication for different programming languages. The
methods that you specify in the service interface definition can be
remotely invoked by the client side as easily as making a local
function invocation. The underlying gRPC framework handles all the
complexities that are normally associated with enforcing strict
service contracts, data serialization, network communication,
authentication, access control, observability, and so on.
To understand the fundamental concepts of gRPC, let’s take a look at
a real-world use case of a microservice implemented with gRPC.
Suppose we are building an online retail application comprised of
multiple microservices. As illustrated in Figure 1-1, suppose that we
want to build a microservice that gives the details of the products
that are available in our online retail application (we will implement
this use case from the ground up in Chapter 2). The ProductInfo
service is modeled in such a way that it is exposed over the network
as a gRPC service.

Figure 1-1. A microservice and a consumer based on gRPC

The service definition is specified in the ProductInfo.proto file, which


is used by both the server and client sides to generate the code. In
this example, we have assumed that the service is implemented
using the Go language and that the consumer is implemented using
Java. The network communication between the service and
consumer takes place over HTTP/2.
Now let’s delve into the details of this gRPC communication. The first
step of building a gRPC service is to create the service interface
definition with the methods that are exposed by that service along
with input parameters and return types. Let’s move on to the details
of the service definition.

Service Definition
gRPC uses protocol buffers as the IDL to define the service interface.
Protocol buffers are a language-agnostic, platform-neutral,
extensible mechanism to serializing structured data (we’ll cover
some of the fundamentals of protocol buffers in detail in Chapter 4,
but for now you can think of it as a data serialization mechanism).
The service interface definition is specified in a proto file—an
ordinary text file with a .proto extension. You define gRPC services in
ordinary protocol buffer format, with RPC method parameters and
return types specified as protocol buffer messages. Since the service
definition is an extension to the protocol buffer specification, a
special gRPC plug-in is used to generate code from your proto file.
In our example use case, the ProductInfo service’s interface can be
defined using protocol buffers as shown in Example 1-1. The service
definition of ProductInfo is comprised of a service interface
definition where we specify the remote methods, their input and
output parameters, and the type definition (or message formats) of
those parameters.
Example 1-1. gRPC service definition of ProductInfo service using
protocol buffers
// ProductInfo.proto
syntax = "proto3";
package ecommerce;

service ProductInfo {
rpc addProduct(Product) returns (ProductID);
rpc getProduct(ProductID) returns (Product);
}

message Product {
string id = 1;
string name = 2;
string description = 3;
}

message ProductID {
string value = 1;
}

The service definition begins with specifying the protocol buffer


version (proto3) that we use.
Package names are used to prevent name clashes between
protocol message types and also will be used to generate code.

Defining the service interface of a gRPC service.


Remote method to add a product that returns the product ID as
the response.

Remote method to get a product based on the product ID.

Definition of the message format/type of Product.


Field (name-value pair) that holds the product ID with unique
field numbers that are used to identify your fields in the message
binary format.
User-defined type for product identification number.
A service is thus a collection of methods (e.g., addProduct and
getProduct) that can be remotely invoked. Each method has input
parameters and return types that we define as either part of the
service or that can be imported into the protocol buffer definition.
The input and return parameters can be a user-defined type (e.g.,
Product and ProductID types) or a protocol buffer well-known type
defined in the service definition. Those types are structured as
messages, where each message is a small logical record of
information containing a series of name-value pairs called fields.
These fields are name-value pairs with unique field numbers (e.g.,
string id = 1) that are used to identify your fields in the message
binary format.
This service definition is used to build the server and client side of
your gRPC application. In the next section, we’ll go into the details
of gRPC server implementation.

gRPC Server
Once you have a service definition in place, you can use it to
generate the server- or client-side code using the protocol buffer
compiler protoc. With the gRPC plug-in for protocol buffers, you can
generate gRPC server-side and client-side code, as well as the
regular protocol buffer code for populating, serializing, and retrieving
your message types.
On the server side, the server implements that service definition and
runs a gRPC server to handle client calls. Therefore, on the server
side, to make the ProductInfo service do its job you need to do the
following:

1. Implement the service logic of the generated service


skeleton by overriding the service base class.
2. Run a gRPC server to listen for requests from clients and
return the service responses.

When implementing service logic, the first thing to do is generate


the service skeleton from the service definition. For example, in the
code snippet in Example 1-2, you can find the generated remote
functions for the ProductInfo service built with Go. Inside the body
of these remote functions you can implement the logic of each
function.
Example 1-2. gRPC server-side implementation of ProductInfo
service with Go
import (
...
"context"
pb "github.com/grpc-up-and-running/samples/ch02/productinfo/go/proto"
"google.golang.org/grpc"
...
)

// ProductInfo implementation with Go

// Add product remote method


func (s *server) AddProduct(ctx context.Context, in *pb.Product) (
*pb.ProductID, error) {
// business logic
}

// Get product remote method


func (s *server) GetProduct(ctx context.Context, in *pb.ProductID) (
*pb.Product, error) {
// business logic
}

Once you have the service implementation ready, you need to run a
gRPC server to listen for requests from clients, dispatch those
requests to the service implementation, and return the service
responses back to the client. The code snippet in Example 1-3 shows
a gRPC server implementation with Go for the ProductInfo service
use case. Here we open up a TCP port, start the gRPC server, and
register the ProductInfo service with that server.
Example 1-3. Running a gRPC server for ProductInfo service with Go
func main() {
lis, _ := net.Listen("tcp", port)
s := grpc.NewServer()
pb.RegisterProductInfoServer(s, &server{})
Visit https://ebooknice.com to
discover a wide range of
eBooks across various genres.
Enjoy exclusive deals and
discounts to enhance your
reading experience. Start your
digital reading journey today!
if err := s.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}

That’s all you have to do on the server side. Let’s move on to the
gRPC client-side implementation.

gRPC Client
Similar to the server side, we can generate the client-side stub using
the service definition. The client stub provides the same methods as
the server, which your client code can invoke; the client stub
translates them to remote function invocation network calls that go
to the server side. Since gRPC service definitions are language-
agnostic, you can generate clients and servers for any supported
language (via the third-party implementations) of your choice. So for
the ProductInfo service use case, we can generate the client stub
for Java while our server side is implemented with Go. In the code
snippet in Example 1-4, you find the code for Java. Despite the
programming language we use, the simple steps involved in a client-
side implementation involve setting up a connection with the remote
server, attaching the client stub with that connection, and invoking
the remote method using the client stub.
Example 1-4. gRPC client to invoke a remote method of service
// Create a channel using remote server address
ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost",
8080)
.usePlaintext(true)
.build();

// Initialize blocking stub using the channel


ProductInfoGrpc.ProductInfoBlockingStub stub =
ProductInfoGrpc.newBlockingStub(channel);

// Call remote method using the blocking stub


StringValue productID = stub.addProduct(
Product.newBuilder()
.setName("Apple iPhone 11")
.setDescription("Meet Apple iPhone 11." +
"All-new dual-camera system with " +
"Ultra Wide and Night mode.")
.build());

As you now have a good sense of the key concepts of gRPC, let’s try
to understand the gRPC client–server message flow in detail.

Client–Server Message Flow


When a gRPC client invokes a gRPC service, the client-side gRPC
library uses the protocol buffer and marshals the remote procedure
call protocol buffer format, which is then sent over HTTP/2. On the
server side, the request is unmarshaled and the respective
procedure invocation is executed using protocol buffers. The
response follows a similar execution flow from the server to the
client. As the wire transport protocol, gRPC uses HTTP/2, which is a
high-performance binary message protocol with support for
bidirectional messaging. We will further discuss the low-level details
of the message flow between gRPC clients and servers along with
protocol buffers and how gRPC uses HTTP/2 in Chapter 4.

NOTE
Marshaling is the process of packing parameters and a remote function
into a message packet that is sent over the network, while
unmarshaling unpacks the message packet into the respective method
invocation.

Before we go further into the gRPC protocol, it’s important to have a


broad understanding of different inter-process communication
technologies and how they have evolved with time.
Evolution of Inter-Process Communication
Inter-process communication techniques have been drastically
evolving over time. There are various such techniques emerging to
address modern needs and to provide a better and more efficient
development experience. So, it’s important to have a good
understanding of how inter-process communication techniques have
evolved and how they made their way to gRPC. Let’s look at some of
the most commonly used inter-process communication techniques
and try to compare and contrast them with gRPC.

Conventional RPC
RPC was a popular inter-process communication technique for
building client-service applications. With RPC a client can remotely
invoke a function of a method just like calling a local method. There
were popular RPC implementations in the early days such as the
Common Object Request Broker Architecture (CORBA) and Java
Remote Method Invocation (RMI), which were used for building and
connecting services or applications. However, most such
conventional RPC implementations are overwhelmingly complex, as
they are built on top of communication protocols such as TCP, which
hinders interoperability, and are based on bloated specifications.

SOAP
Owing to the limitations of conventional RPC implementations such
as CORBA, Simple Object Access Protocol (SOAP) was designed and
heavily promoted by large-scale enterprises such as Microsoft, IBM,
etc. SOAP is the standard communication technique in a service-
oriented architecture (SOA) to exchange XML-based structured data
between services (usually called web services in the context of SOA)
and communicates over any underlying communication protocol such
as HTTP (most commonly used).
With SOAP you can define the service interface, operations of that
service, and an associated XML message format to be used to invoke
those operations. SOAP was quite a popular technology but the
complexity of message format, as well as the complexities of
specifications built around SOAP, hinders the agility of building
distributed applications. Therefore, in the context of modern
distributed application development, SOAP web services are
considered a legacy technology. Rather than using SOAP, most of the
existing distributed applications are now being developed using the
REST architecture style.

REST
Representational State Transfer (REST) is an architectural style that
originated from Roy Fielding’s PhD dissertation. Fielding is one of the
principal authors of the HTTP specification and the originator of the
REST architectural style. REST is the foundation of the resource-
oriented architecture (ROA), where you model distributed
applications as a collection of resources and the clients that access
those resources can change the state (create, read, update, or
delete) of those resources.
The de facto implementation of REST is HTTP, and in HTTP you can
model a RESTful web application as a collection of resources
accessible using a unique identifier (URL). The state-changing
operations are applied on top of those resources in the form of the
HTTP verbs (GET, POST, PUT, DELETE, PATCH, and so on). The
resource state is represented in textual formats such as JSON, XML,
HTML, YAML, and so on.
Building applications using the REST architectural style with HTTP
and JSON has become the de facto method of building
microservices. However, with the proliferation of the number of
microservices and their network interactions RESTful services have
not been able to meet the expected modern requirements. There are
a couple of key limitations of RESTful services that hinder the ability
to use them as the messaging protocol for modern microservices-
based applications.

Inefficient text-based message protocols


Inherently, RESTful services are built on top of text-based transport
protocols such as HTTP 1.x and leverage human-readable textual
formats such as JSON. When it comes to service-to-service
communication, it is quite inefficient to use a textual format such as
JSON because both parties to that communication do not need to
use such human-readable textual formats.
The client application (source) produces binary content to be sent to
the server, then it converts the binary structure into text (because
with HTTP 1.x you have to send textual messages) and sends it over
the network in text (over HTTP) to a machine that parses and turns
it back into a binary structure on the service (target) side. Rather,
we could have easily sent a binary format that can be mapped to a
service’s and consumer’s business logic. One popular argument for
using JSON is that it is easier to use because it’s “human-readable.”
This is more a tooling problem than a problem with the binary
protocols.

Lacks strongly typed interfaces between apps


With the increasing number of services interacting over the network
that are built with disparate polyglot technologies, the lack of well-
defined and strongly typed service definitions was a major setback.
Most of the existing service definition technologies that we have in
RESTful services, such as OpenAPI/Swagger, are afterthoughts and
not tightly integrated with the underlying architectural style or
messaging protocols.
This leads to many incompatibilities, runtime errors, and
interoperability issues in building such decentralized applications. For
instance, when you develop RESTful services, it is not required to
have a service definition and type definition of the information that is
shared between the applications. Rather, you develop your RESTful
applications either looking at the textual format on the wire or third-
party API definition technologies such as OpenAPI. Therefore, having
a modern strongly typed service definition technology and a
framework that generates the core of the server- and client-side
code for polyglot technologies is a key necessity.

REST architectural style is hard to enforce


As an architectural style, REST has a lot of “good practices” that you
need to follow to make a real RESTful service. But they are not
enforced as part of the implementation protocols (such as HTTP),
which makes it hard to enforce them at the implementation phase.
Therefore, in practice, most of the services that claim to be RESTful
are not properly following the foundations of the REST style. So,
most of the so-called RESTful services are merely HTTP services
exposed over the network. Therefore, development teams have to
spend a lot of time maintaining the consistency and purity of a
RESTful service.
With all these limitations of inter-process communication techniques
in building modern cloud native applications, the quest for inventing
a better message protocol began.

Inception of gRPC
Google had been using a general-purpose RPC framework called
Stubby to connect thousands of microservices that are running
across multiple data centers and built with disparate technologies.
Its core RPC layer was designed to handle an internet scale of tens
of billions of requests per second. Stubby has many great features,
but it is not standardized to be used as a generic framework as it is
too tightly coupled to Google’s internal infrastructure.
In 2015, Google released gRPC as an open source RPC framework; it
is a standardized, general-purpose, and cross-platform RPC
infrastructure. gRPC was intended to provide the same scalability,
performance, and functionality that Stubby offered, but to the
community at large.
Since then, the popularity of gRPC has grown dramatically over the
past few years with large-scale adoption from major companies such
as Netflix, Square, Lyft, Docker, Cisco, and CoreOS. Later, gRPC
joined the Cloud Native Computing Foundation (CNCF), one of the
most popular open source software foundations dedicated to making
cloud native computing universal and sustainable; gRPC gained a lot
of traction from CNCF ecosystem projects.
Now let’s look at some of the key reasons for using gRPC over the
conventional inter-process communication protocols.

Why gRPC?
gRPC is designed to be an internet-scale, inter-process
communication technology that can overcome most of the
shortcomings of conventional inter-process communication
technologies. Owing to the benefits of gRPC, most modern
applications and servers are increasingly converting their inter-
process communication protocol to gRPC. So, why would somebody
select gRPC as a communication protocol when there are so many
other options available? Let’s look more closely at some of the key
advantages that gRPC brings to the table.

Advantages of gRPC
The advantages that gRPC brings are key to the increasing adoption
of gRPC. These advantages include the following:
It’s efficient for inter-process communication
Rather than using a textual format such as JSON or XML, gRPC
uses a protocol buffer–based binary protocol to communicate
with gRPC services and clients. Also, gRPC implements protocol
buffers on top of HTTP/2, which makes it even faster for inter-
process communication. This makes gRPC one of the most
efficient inter-process communication technologies out there.

It has simple, well-defined service interfaces and schema


gRPC fosters a contract-first approach for developing
applications. You first define the service interfaces and then work
on the implementation details afterward. So, unlike
OpenAPI/Swagger for RESTful service definition and WSDL for
SOAP web services, gRPC offers a simple but consistent, reliable,
and scalable application development experience.
It’s strongly typed
Since we use protocol buffers to define gRPC services, gRPC
service contracts clearly define the types that you will be using
for communication between the applications. This makes
distributed application development much more stable, as static
typing helps to overcome most of the runtime and
interoperability errors that you would encounter when you build
cloud native applications that span across multiple teams and
technologies.

It’s polyglot
gRPC is designed to work with multiple programming languages.
A gRPC service definition with protocol buffers is language-
agnostic. Hence, you can pick the language of your choice but
can interoperate with any existing gRPC service or client.
It has duplex streaming
gRPC has native support for client- or server-side streaming,
which is baked into the service definition itself. This makes it
much easier to develop streaming services or streaming clients.
And the ability to build conventional request–response style
messaging and client- and server-side streaming is a key
advantage over the conventional RESTful messaging style.
It has built-in commodity features
gRPC offers built-in support for commodity features such as
authentication, encryption, resiliency (deadlines and timeouts),
metadata exchange, compression, load balancing, service
discovery, and so on (we’ll explore these in Chapter 5).

It’s integrated with cloud native ecosystems


gRPC is part of the CNCF and most of the modern frameworks
and technologies offer native support for gRPC out of the box.
For instance, many projects under CNCF such as Envoy support
gRPC as a communication protocol; for cross-cutting features
such as metrics and monitoring, gRPC is supported by most such
tools (e.g., using Prometheus to monitor gRPC applications).

It’s mature and has been widely adopted


gRPC has been matured by its heavy battle-testing at Google,
and many other major tech companies such as Square, Lyft,
Netflix, Docker, Cisco, and CoreOS have adopted it.
As with any technology, gRPC comes with a certain set of drawbacks
as well. Knowing those drawbacks during application development is
quite useful. So, let’s take a look at some of the limitations of gRPC.

Disadvantages of gRPC
Here are some of the disadvantages of gRPC that you need to be
mindful of when you select it for building applications. These include
the following:
It may not be suitable for external-facing services
Exploring the Variety of Random
Documents with Different Content
into his blood. At the same instant he was conscious of a stab of
shame. It was the flesh, the draperies, the trappings to which his
pulses responded; it was not the magical secret which was contained
in the miniatures upon the walls, in the passionate delicacy of the
cadences which sobbed themselves out liquidly under the siren’s
touch of this beautiful woman.
He stood in front of the cosy fire, glass in hand. A soft warmth
overspread his being. His eyes glanced from the white shoulders of
the enchantress to the thousand and one hues which were blended
so cunningly in the carpets and tapestries. The subtle playings of
light and shadow, the mellow effects of the atmosphere, the
softness of the music, began to assail his senses with indescribable
pangs. He feasted his eyes, his ears, his nostrils; they rewarded him
with gladness. His heart beat violently.
“These rare kinds of genius, are they not barbarous?” he said, when
the siren had ceased to cast her fingers.
“It is like children lisping,” she said, half-turning her head, with a
smile that curved her mouth entrancingly.
“Yes,” said the young man, “poetry, romance, imagination are
primitive; they belong to the childhood of nations, to the dawn of
new worlds. What a divine inspiration these sweet-voiced children of
nature who are bought out of due time, these unhappy Poles,
Germans, and Frenchmen bring to their despair. Instead of sitting
down in black coats to make their music into beef and mutton, they
should be tripping through the glades piping to the birds, the trees,
the bright air.”
“This is a mad fellow, my angel,” said Mr. Whitcomb indulgently, “but
if you are gentle with him you may find him amusing.”
“Mr. Northcote will amuse me enormously,” said the lady, with a
demure glance.
“Is it thus you rebuke his madness?” the young man asked.
“On the contrary, I don’t think I have ever seen a sanity that is quite
so perfect.”
“Drop it,” said the solicitor, roguishly pinching her ear. “Beware of
dangerous turnings, my son. She is quite prepared to play George
Sand to anybody’s Alfred de Musset. She even does it to the
greengrocer when he comes round with his barrow. I understand
they discourse divinely together upon the subject of cabbages.”
“But Witty is too much the man of the world to be jealous about it,”
she purred.
“If Pussy hasn’t the opportunity to sharpen her claws on a sofa or an
ottoman, she doesn’t mind a wicker-work chair.”
“Witty, darling,” said the lady, “I hate to find rudeness keeping
company with real distinction of mind.”
“Upon my word,” expostulated Northcote, seeking to measure her
depth, “I consider that rebuke to be much prettier than the one
bestowed upon me.”
“When, Mr. Northcote, did I rebuke you?”
“Did you not say I should amuse you enormously?”
“Is not that the only compliment a woman has the power to pay
nowadays?”
“Yes, Noodle,” said Mr. Whitcomb, laughing; “but don’t you see how
young he is, and therefore how serious? Who would call ‘enormously
amusing’ a fitting compliment for one of the seven champions of
Christendom? This is a devil of a fellow.”
“I can roar you like any sucking dove,” said the young man.
“How it would thrill one to hear you do it!” said the lady, enfolding
him with large eyes.
“He is a man of destiny,” said Mr. Whitcomb; “he carries a genie in
his pocket.”
“Oh!” said the lady, with clasped hands.
“One of these fine mornings he will stand the world on its head.”
“O-o-o-o-h!” said the lady.
“And having done that,” said Northcote, “this amazing fellow will dig
a hole in the universe for to bury the moon.”
“I would that all men had ambition,” said the lady, looking down at
her shoe. “If Witty had only a little of that precious salt which forms
a sediment at the bottom of every fine action he would be one’s
beau-ideal of a hero, a Christian, and a philosopher.”
“Minx!” exclaimed the solicitor. “If it were not for my ambition I
should never rise from my bed.”
“So this wonderful Mr. Whitcomb has no ambition!” said Northcote.
“You see I have found his character so complex, that in my capacity
of an amateur of the human mind I am picking it out, here a little,
there a little, piece by piece.”
“You must give him no marks for ambition,” said the lady. “But since
when did you become acquainted with him not to have found out
that?”
“Since this evening at ten.”
“Ah, then, you are absolved. He will certainly baffle you at first.”
“He is wholly incomprehensible to me. He is a man of moods who
oughtn’t to have any.”
The lady clapped her hands in a little ripple of glee.
“How right,” she cried. “In a dozen little words you have shown me
the nothingness of my own knowledge.”
“Of course he has, Vapid One,” said Mr. Whitcomb. “Have I not told
you he carries a genie in his pocket?”
“Then that is why his eyes are so deep and bright,” said the lady,
turning to peruse Northcote again with an unfathomable coquetry;
“and would you not say, Witty, that the genie is in some sort
responsible for his mouth?”
“Is this public laying of one another upon the dissecting-table a new
parlor-game that has been brought into vogue by the long winter
evenings, may I ask?” said Mr. Whitcomb, concealing a yawn.
“Pray do not be insolent, Witty. The proper study of mankind is
Man.”
“In the words of Pope,” said the solicitor, turning to replenish his
glass.
“You can see how Mr. Whitcomb baffles me,” said Northcote, who did
not propose to lose the opportunity of following up his clue.
“Is it his attitude to hansom cabmen that makes him so dark?”
“That is contributory. But it is mainly because he has come before
me in the guise of a waverer that I stand so much at fault. If one
knows anything about anything one would be prepared to affirm that
nature had designed Samuel Whitcomb to know his own mind.”
“He does as a rule. I have never known him waver in anything; but
then, of course, it is only quite recently that he has begun to
associate with dangerous persons who keep a genie.”
“Do you suggest that he is susceptible to such a thing as a genie?
Would it have a malign influence upon him, do you suppose?”
“I would suggest it to be likely in the highest degree.”
“Now, look here, my young friends,” interposed the solicitor at this
point, with a broad good humor, “Samuel Whitcomb does not
propose to play the part of the corpse at the lecture on anatomy.”
“You will help yourself to another drink like a good boy,” said the
lady severely; “and you will please to say nothing until we have dealt
with your ‘case.’ Your character need not fear the lancet and bistoury
of true science. Tell me, Mr. Northcote, wherein he is a waverer.”
“I am rejoiced to hear you put that question,” said the young man,
with a gesture of triumph he did not try to conceal, “for now it is
that I unfold my tale.”
XII
THE FAITH OF A SIREN

“At about ten o’clock this evening,” Northcote began, “as I was
kneeling in front of the fire—there was not any fire, by the way, as it
costs too much to afford one sometimes—in my miserable dwelling
at the top of Shepherd’s Inn, the oldest and most moribund of all the
buildings in Fleet Street, who should come climbing up to the
topmost story of the rickety and unwholesome stairs, under which
the rats have made their home for many generations, but Mr.
Whitcomb. And what do you suppose was his business?”
“He wished to buy one of your pictures.”
“Ah, no, I am not a painter.”
“I thought there was a chance of it, since they say all very good
painters are so poor. But perhaps you are a little too fierce, although
I am told these impressionists are terrible men.”
“The painting of pictures is one of the few things I have not
attempted,” said the young man, consenting to this interruption that
he might sit for his own portrait.
“Well, I should not say you are a writer of fiction. They are so tame.
Besides they are all nearly as rich as solicitors.”
“Why not a poet?”
“Why not? although your fierceness would make you a dramatic, not
a lyric one. Still it is impossible for you to be a poet, because I am
sure that Witty would never have climbed up all those stairs to your
miserable garret—I feel sure it is a garret with a sloping roof with a
hole in it—”
“There is a pool under the hole which has been caused by the
percolation of water—”
“On to the atrocious bare boards, its occupant being much too poor
to afford a carpet. Yes, Witty would never have climbed up to your
garret if you had been a poet. Or stay, he might, had you been Mrs.
Felicia Hemans. As you are a seeker of documentary evidence, he
has been known to recite her poems, at the request of the rector of
this parish, to a Sunday-school party.”
“Base woman,” said the solicitor, with an air of injury; “I claim to be
an admirer of the poet Longfellow.”
“Never, Witty, in your heart; it is merely your fatal craving to be
respectable in all things. But in the matter of poetry you must be
content to remain outside. You would never have climbed those
rickety stairs to that cold garret to see John Keats.”
“Well, now, Featherhead, did I not tell you at the first that our young
friend was England’s future Lord Chancellor?”
“I will never believe that; I will never believe that his destiny is the
law. His eye has amazing flashes; and is there not a beautiful
eloquence burning in his mouth? I cannot think of him as rich Witty,
and successful Witty, and smug Witty, like you atrocious lawyers. He
is one who would be an overthrower of dynasties, a saviour of
societies.”
“You are letting your tongue wag, Noodle. If you talk so much it will
take the young man until daybreak to unfold his story.”
“I am an advocate,” said Northcote.
“An advocate,” said the lady softly; “yes, I think you may be that.
One no more associates an advocate with the law than one
associates a poet with a publisher.”
“You would say,” said Northcote, “that it is the function of an
advocate to draw his sword for the truth, for progress, for justice,
for every human amenity?”
“I would, indeed. Why, if one thinks about it, surely it is nobler to be
an advocate than to be a poet or a soldier. One might say it was the
highest calling in the world.”
“Then let us say it,” said the young man, “for I verily believe it to be
so.”
“And what, pray, was Witty’s business with this advocate?”
“They are going to hang a woman; and Mr. Whitcomb, who to his
infinite complexities and many-sidedness as a citizen of the world
adds a leaven of the finest humanitarian principles, has undertaken
to save the poor creature from a fate so pitiful.”
“To hang a woman!” said the lady, drawing in her breath with a
sharp sound. “Is it still possible to hang a woman at this time of
day?”
“Perfectly,” said the young man. “They do it in every Christian
country.”
“Then the world has need for an advocate,” said the lady, with
horror in her eyes. “It is necessary that we should have yet another
champion for our sex in Christendom. Yes, this was he whom Witty
came to seek in that garret at the top of all those rickety stairs.”
“He came to seek, and found no less a person,” said Northcote. “And
having found this authentic champion of your sex, he gave him a
mandate to plead on behalf of this unfortunate creature, the least
happy of all its members.”
“What a moment of high inspiration for us and for him,” said the
lady, with a glance of tenderness.
“It was even as you say. But I would have you mark what follows.
Scarcely has he bestowed these high plenary powers upon one
whom he has ventured to select from among all the great multitude
to champion your sex in the name of humanity, than for a whim he
withdraws his mandate.”
“Impossible; it would be an outrage upon us.”
“Yes; unconditionally and peremptorily he withdraws his mandate.”
“Impossible; they will do the poor creature to death.”
“Yes, they will do her to death. He who has been called to the office
of averting her doom has decreed that she must walk to embrace it
without a friend to plead her cause before humanity.”
“Surely this cannot be; society itself must protest.”
“One expects it; yet things are as they are.”
The beautiful creature turned to the solicitor with an almost royal air.
“What, sir, can you find to say in your defence?”
Mr. Whitcomb gave a short laugh.
“I yield,” said he.
“You restore the mandate?”
“Yes, yes, yes! My blood be on my own head, but so it must be. It is
beyond flesh and blood to withstand such a pair. You, madam, are a
sorceress; and this fellow is the devil.”
“I am content to be a sorceress in the cause of my unfortunate sex,”
cried the lady; and turning to Northcote added gravely: “And is it not
high time that we acquired a devil for our advocate?”
Northcote, who from the moment of her first appearance had
foreseen a victory, took her hand to his lips impulsively, with an
expression of gratitude.
“I hope this will be all right,” said the solicitor, viewing his surrender
with a rueful smile. “You see it is the first time in my life that a
foreboding has overtaken me in the midst of action. Whether it is
the importance of the case, the obscurity of the advocate, or a
certain flamboyancy in his bearing which is so repugnant to an
English common lawyer, I cannot tell; but let me confess that I have
already a premonition that I have been guilty of a mistake. And I will
go farther,” said Mr. Whitcomb, with a wry laugh; “I even see ruin,
blue ruin for all concerned, hidden in this irresolute act. Sharp little
shivers go down my spine.”
“It is no more than the reaction,” said Northcote, “which attends our
highest resolves. Is it not in such moments that a man truly
measures himself? It must have been at the fall of the barometer
that Samson was shorn of his locks.”
“Is there not always a woman in these cases?” said the lady. “This
unfortunate creature whom our advocate is to deliver from the
gallows, may she not be a Delilah of some kind?”
XIII
BE BOLD, WARY, FEAR NOT

At these words, lightly spoken, Northcote grew conscious of an


indescribable sensation which he had never experienced before.
“If it were one’s custom,” he said, with a laugh as wry as the
solicitor’s, “ever to heed the note of prophecy, one might discern it
in your words. But I will not do so. Since that dark hour in which I
summoned the genie, have I not adopted as my device, ‘Be bold,
wary, fear not’?”
“Now you come to mention it,” said the solicitor, “it may be this talk
of the genie that has filled me with these forebodings.”
“That is very foolish, Witty,” said the lady. “You have but to look into
the eyes of our advocate to know what it is and where it dwells.”
“He is quite entitled to keep one, of course, but it is not usual to
take it into society. I sometimes think I may have a bit of a genie
myself, but I do what I can to keep it a profound secret from the
world.”
“Should a man venture to compliment himself, Witty, upon the score
of his reticence?”
“Would you not say,” inquired Northcote, “that all our reticences had
their roots in our cowardice?”
“I would love to say it if I dared. And I would love to say of our
advocate that his genie enables him to fear nothing.”
“Yes,” said Northcote, “you shall say that.”
“A man must have fear of some kind,” said the solicitor, “if he is to
succeed against enormous odds.”
“There may be a place for it in his reflections, but never in his
resolves. Hence you will discern how our reticence has its basis in
our cowardice.”
“Subtle brute,” said Mr. Whitcomb, giving his mustache a tug of
perplexity. “He is entering upon his special function of turning black
into white.”
“Nay,” said Northcote, “the subtlety is not mine, but Francis Bacon’s.”
“Good, O Advocate!” said the lady, as she rewarded him with bright
eyes. “You do well to confute the Philistine with a learned name.”
Again the young man carried the jewelled hand to his lips. He felt
the lithe fingers respond with a sweet and secret motion.
“Rogue!” said the solicitor, laughing. “George Sand and De Musset—
Polly Whitcomb and the greengrocer at the back door. Well, Mischief,
as you have entered into a compact with this fellow to get him his
way, play us another bit of a tune, he shall keep his brief, and we
will go to bed.”
“I knew we should force him to capitulate,” said Northcote to the
siren, as he arranged the stool before the piano.
“What must I play?” she said, looking down at her hands.
“Play me a bit of Beethoven, so that I may take him out with me into
the darkness of the streets.”
She played three movements of a symphony, and all his senses were
submerged in the colors of romance. These fragrant hues which had
a delicate aroma and pungency the imagination alone can impart
were of no time or country. There was nothing that the mind could
render as belonging to itself; the faculties which embody the
technical were overcome by the tumultuous surgings with which
they were oppressed. He seemed to be transfigured with the sense
of joy, to be overpowered with the knowledge that he was a living
man, able to breathe and to perform. The room had grown small
and heavy. He was consumed with an overmastering desire for the
spacious streets, for the largeness of the universe.
“There is a bed for you here,” said the beautiful player, almost before
the last phrase had ceased to vibrate under her touch. “We could
not think of turning you out at this hour.”
“I have not the least intention of staying,” said Northcote. “The
hospitality you have given me already has been too profuse. I feel
that I must roam for the rest of the night in the open streets, a
Flying Dutchman of the London slush. Perhaps I shall fancy myself
to be the mad music-maker of Leipsic, who walked at night on the
ramparts to weave his harmonies.”
“We cannot consent to your leaving us in this manner,” said the
hostess. “As for roaming through the night, it will not be good for
you. Nor is there the least necessity why you should.”
“You forget his genie,” laughed the solicitor. “The infernal thing will
drive him all over the suburbs of south London and send him home
via the Crystal Palace and Blackfriars Bridge.”
“He must not go to-night,” said the lady. “It will be a perfectly horrid
walk, and I believe the sleet has turned into rain. It will be awfully
cold and unpleasant. Besides, if anything happens to our advocate
he will not be able to deliver this unfortunate creature from her
doom.”
“It is useless to argue with a man who has got a genie,” said the
solicitor. “I have tried the experiment and therefore am in a position
to give evidence. What will overtake him in the way of adventures I
dare not conjecture; but of one thing I am assured—no earthly
power will cause him to alter his determination.”
“Alas! I know it,” said the lady, sighing. “He has a face that will yield
to nothing.”
This diagnosis proved to be correct, at least as applied to this
instance, as in spite of the humane entreaties of the lady, supported
by a banter which Mr. Whitcomb did not attempt to dissemble,
Northcote insisted on faring from their roof at a quarter-past three.
He bade them adieu with a cordiality that was eloquent of a deep
sense of friendship.
When Mr. Whitcomb returned to the drawing-room after having
shown the young man over the threshold of his residence, he faced
the lady with a half-smile of bewilderment.
“Extraordinary chap,” he said. “He frightens me, takes me out of my
depth. There is such a bee buzzing about in his bonnet that he
might come wofully to grief on Friday. If he does, there will be none
but myself to blame, for he is wholly without experience.”
“I think you may trust him,” said the woman softly.
“Well, you are a mass of instincts, Miss Pussy. And you counsel me
to stick to your advocate?”
“I do, Witty; closer than a brother. I think he is perfectly amazing. I
think he will make the fortunes of all who are connected with him.”
“Another Michael Tobin, would you say?”
“What a dunce it is,” said the lady, with an indulgent sigh. “Michael
and this man don’t inhabit the same hemisphere. Michael is a dear
fellow, brilliant, clever, but only surface deep; this is an ogre of a
creature, a monster, deep as the sea, of the proportions of the
universe.”
“Come, I say, Mrs. Noodle; they don’t call that sort to the bar. They
might find the purlieus of the law too confining.”
“If you have not yet learned to scorn my advice, Witty, take care
never to have this man against you. If you have him on your side
every time you go into court, you will not have many lost causes to
record.”
“He is clever, I grant you, but the worst of it is he knows it.”
“He is arrogant with power, Witty, which is somewhat different,
although it sounds the same. I think he is a perfectly terrible man,
and he looks so big and great and deadly. Did you notice his
enormous hands? Did you observe his chest? And that voice as soft
as a flute yet as deep as an organ?”
“You are completely conquered, Featherhead. Yet you would not call
this phenomenon precisely beautiful?”
“Strength is more beautiful than symmetry, I think; although I grant
you that huge square jowl verges upon the horrible. It is far worse
than yours, my dear, although the poor hansom cabmen are
constantly mistaking it for that of an eminent pugilist.”
“Well, little gal,” said the solicitor, “I shall heed you once more, since
your luck is proverbial. I am prepared to back our latest discovery
pretty heavily, although I must confess that when in cold blood I
catch myself thinking of his infernal genie he frightens me to death.”
XIV
A JURY OF TWO

In the meantime the subject of these speculations had entered the


night. Food and wine in unaccustomed quantities, the romance of
events, the spells cast by music and by a woman of signal beauty
and accomplishment, had provoked his energies to an insurgency
that had rendered them overbearing. He walked like a whirlwind, up
one street and down another, in the chill wet darkness, not knowing
whither he was bound. Soft yet wild strains of melody which still
floated through his brain mingled with a swarm of ideas which were
whirling about in it like so many atoms in a protoplasm. He moved
so fast in the endeavor to keep abreast of his thoughts that at times
he broke into a run.
The seductive, amiable, and brilliant woman, who had so nearly
succeeded in casting over him a delicious spell, began to fade from
his consciousness like the intangible occupant of a dream. She had
no appeal for him now. The feast at the restaurant, that phase of
color, warmth, and splendor in which for an hour the squalor of his
existence had been dispelled; the struggle to retain the treasure
which had been entrusted to his keeping by a supernatural agent;
the bizarre incident of the hansom cabman; and the personality of
the genial god out of the machine had now ceased to have
significance.
Indeed one thing alone merged his faculties in his overstimulated
thoughts. It was the packet which he could feel in the breast-pocket
of his coat, towards which his hands were straying constantly. These
pages of foolscap bound with red tape, were they not his magic
talisman? By that occult presence had not his thwarted bleak and
empty life been changed into an electrical existence crowded with
glory?
His brain bursting with ideas, he began to run faster and faster
through the maze of endless streets, lined with high garden walls,
portentously respectable dwelling-houses, lamps, shops, and
secretive silent-footed policemen. These frequently flashed their
lanterns upon him, for the manner of his progress had an illegal air.
Even at the height of this orgy of freedom, the question shaped itself
with the oddest definiteness as to whether it would not be expedient
to curb his paces, since if he were stopped, he feared lest he should
be able to render an account of himself that would be sufficiently
lucid to commend itself to the myrmidons of the law.
When at last his exertions had thrown him out of breath, and his
frame did not respond with quite the same unanimity to his passion,
he stopped under a lamp in the middle of a street on the side of a
steep hill, took out the precious document he carried, and began to
peruse it for sheer human pleasure. He even pressed his lips to this
prosaic thing, with no less of fervor, indeed with more abandonment
than he had saluted the hand of the sorceress who had been the
means of restoring it to his care.
“I must make her my saint, I must burn candles to her,” he
muttered, recalling her image with a sense of rapture.
As he stood under the lamp, a very large and slow-footed policeman
waddled up towards him, trying doors and casting the light of his
lantern down the areas he passed. As he went by, keenly scrutinizing
the figure of the young man, yet pretending not to notice it,
Northcote hailed him.
“Where might I be, policeman? I am strange to these parts.”
“Well,” said the policeman slowly and with effort, “you might be in
Balham, but you ain’t. Likewise, you might be at Charing Cross, but
you are not there, nuther.”
“I observe, policeman, that you have graduated in the school of
judicial humor,” said Northcote, delighted by the suavity of outline of
X012. “If every man had his rights, which of course it is utopian to
expect, you would be adding lustre to the bench. Your mental gifts
fit you equally to be a judge, a recorder, or a stipendiary magistrate.”
Such an exaggerated view of his merits produced a deep-founded
suspicion in the honest breast of X012.
“If every man had ’is rights,” said the custodian of the peace,
speaking slowly and with effort, and eying Northcote with the
solemnity of a horse, “you’d be took up on suspicion, young feller,
and charged with loitering with intent.”
Northcote dispelled the suburban quietude with a guffaw.
“Being unwilling,” said he, “to impale myself upon that spiked railing
which calls itself the law, I ought to be extremely careful to refrain in
its presence from the vexed and overmuch discussed question of
whether the badinage of its minions is wit, wisdom, humor, or a
veritable cesspool of human inanity.”
X012 was so much astonished by these words and the forcible mode
of their delivery that he pulled his whistle out of his coat, and
proceeded to toy with it in an irresolute fashion. Before he had
decided to summon aid by blowing it, there appeared round the
corner of an adjacent street a second constable, in all essentials of
bearing, physique, and mental energy the perfect replica of himself.
“I’m glad you’ve come, Bill,” said X012. “I’ve got a rum one ’ere. I
don’t know what he’s been drinking, but you should just hear his
languidge. Here he was under this lamp, a-purtendin’ to read a
newspaper at twenty past four by the mornin’.”
“Noticed his mug?” said his confrère Z9. “Bob Capper, the
’ousebreaker, who just done in ’is last seven stretch an’ was let out
on license last Tuesday.”
“Got it in one!” said X012, not without enthusiasm. “We ’ad better
take him to the station and have ’im searched.”
“This is the result of a misplaced jocularity in the presence of
professional wits,” said Northcote, with an amiability that was viewed
with considerable disfavor by both constables. “I hope you will
forgive me, my friends. The only excuse I can urge for impinging
upon the prerogative of the legal supernumerary, if I may so express
myself, is that as one day I am certain to be a judge, I feel it to be
due to the lofty elevation I shall be called to occupy, and of which I
intend to be so signal an ornament, to neglect no opportunity of
acquiring these cardinal principles of humor, dangerous, double-
edged implement though it be, which can only be done by
association with those past-masters who as the crowning glory of
our admirable legal system inhabit it in choice perfection in all its
branches. I hope, my friends, I have made myself perfectly clear.”
“Clear as mud,” said Z9.
“Impidence!” exclaimed X012; “downright impidence! Certin to be a
judge! Why, Lord love me, young feller, if ever they ax you to be the
judge of a pair o’ pullets at a poultry show you’ll be lucky.”
“Balmy,” said Z9, tapping his forehead with an air of Christian pity.
“You are very probably right,” said Northcote. “I suspect there is a
basis of truth in this scientific opinion which you have embodied in
so expressive an idiom. But at the same time I would ask you, is it
not a somewhat extreme view to take of the mental condition of a
barrister-at-law who has been nominated to appear at the court of
the Old Bailey to-morrow morning at the hour of ten-thirty to defend
one Emma Harrison, who at that time and in that place will stand
her trial for wilful murder?”
“A-going to defend Emma Harrison!” exclaimed the constables.
“Why, what will he be saying next?”
“I do say that, my friends,” said Northcote, with a note of
imperiousness in his voice that was not without its effect on these
astonished minions of the law. “And I want you both to stand back a
yard or two against the railings, while I advance to the curb; and
further, I want you for a few minutes to imagine that you are the
jury, and I will rehearse the opening of my speech for the defence. I
shall begin something like this.”
“Oh, will you now?” muttered Z9 to his companion. “Well, if this
don’t beat cock-fighting!”
Both these constables, overawed already by the authentic manner of
the advocate, were now devoured by curiosity.
“Listen,” said he. “I rise in my place with this bundle of papers in my
hand, which I shall not consult, but shall cling to to gain confidence,
and I shall say: May it please your lordship and gentlemen of the
jury, this is a dreadful issue you are sworn to try. Indeed it would be
difficult for the human conscience to conceive an ordeal more
repugnant to the moral nature of man, one in sharper antagonism to
those principles that are his priceless inheritance, than is revealed to
you by the situation in which you stand. It is not by your own choice
that you come to take your places in this assembly. It is not in
obedience to your own instincts that you have left your toil to
subscribe to a law which is not of your own making. I venture to
affirm this without fear, for is not this ordeal into which you are
thrown in deadly conflict with the behests of that unfearing spirit
who, nineteen centuries ago, discovered the only possible faith for
His kind?
“It is as the inheritors, gentlemen, of an inimitable tradition, not as
administrators of a penal code, that I venture to address to you
these words. And let me tell you why I venture to address you in this
fashion. It is because the life of a fellow creature is at stake; it is
because sitting here in conclave in this place you are enmeshed in
the most grievous ordeal that the fruit of human imperfection is
able, at this time of day, to impose upon you. For that reason,
gentlemen, I conceive that you are entitled to take your stand upon
a lofty and secure platform to survey this issue, a platform which has
been raised for the oppressed, the unhappy, and those who are
doubtful of their way, by the travail of the choicest spirit in the
annals of human nature.
“Gentlemen, you are called upon to adjudicate upon the life of a
woman. You are called upon to do so at the bidding of a formula,
whose hideous and obsolete enactments are the fruit of an imperfect
culture of a partial and unsympathetic interpretation of those laws to
which every civilized community owes its name. Gentlemen, you are
called upon to adjudicate upon the life of a woman; you rate-payers
of London, you gentle and devout citizens, you to whom life has
given as the crown of your endeavor, as the consecration of your
painful daily labor, mothers, wives, and daughters of your own.
“Yes, gentlemen, we must indeed ascend the loftiest and most
secure platform known to us, to survey the ordeal that our own
imperfection has presented to us.
“You have heard the words that have fallen from the lips of my
learned friend, the counsel for the Crown. You have examined the
facts which he has marshalled before you. You have noted the
inferences which he has not been afraid to draw. You have been
thrilled by the union of a consummate skill with a consummate
learning. All that is base, sordid, and unworthy in the human heart
has been stripped naked before your eyes. The smallest acts of this
unfortunate woman have been shown to you as vile; even the
aspirations which are allowed to ennoble her sex have been
rendered abominable. Every kind of mental and moral degradation
has been made to defile before you; for verily there is no limit to the
talent of this accomplished gentleman.
“That such a talent should have taken service with an outworn
formula is a great public danger. For just as our common humanity is
able to assure us that the acts of the most wicked are not always
wrong, so those of the finest integrity would not bear dissection at
the hands of a cold and scientific cynicism. Our every act has two
faces. One is presented to belief, the other to unbelief; one is
presented to truth, the other to error. And as this penal code of ours,
which we traverse constantly with searchings of heart, is itself a
survival of a time of gross darkness, called into being by unbelief
and fostered by error, the acts of the best and worthiest among us
are liable to be visited by the sword of the avenger, in other words
by justice. I am convinced that if any one of you gentlemen, or any
private citizen, was called upon to rebut the most awful charge that
can be levelled against him, innocent as you might be, innocent as
he might be, it would be found immensely difficult, I will not say
impossible, to combat the deadly array of inferences which would be
marshalled against you in the interests of this penal code by one of
the most talented of its servants. The mere fact that you had come
to stand your trial in this noisome chamber, itself stained with a
thousand crimes committed in the name of justice, and that a cruel
chain of events had forced you to vindicate your kinship with the
divine will in the precincts of this charnel-house—it is well,
gentlemen, that the windows are kept so close, for who would have
this foulness mingle with the air of London?”
For the best part of an hour in that raw winter morning, with a
drizzling rain falling incessantly, did Northcote continue to rehearse
his address to the jury. The amused intolerance of his hearers
yielded to an intense interest. They had been present in court on
many occasions and had heard these things for themselves, but
never had they listened to a voice of such dominion, of such volume
and majesty, a voice capable of such burning appeal. They stood
merely at the threshold of the argument, it was true; but the art of
the orator unfolded it, made it clear. His natural magic, his
incommunicable gift, rendered it with the harmony of music, so that
before the end these oxlike custodians of the peace, far from
growing weary of their situation, began to view with emotion the
injury that threatened an outcast from society.
“Go on, sir,” said Z9 humbly; “you’ve the gift and no mistake. They’ll
not be able to hang her if you talk to ’em that way.”
“This is not quite the form it will take, you know,” said Northcote,
whose exertions had been so great that he was breathing heavily
and dripping with perspiration. “It is only a sort of opening roughly
blocked out. It will have to be rendered a bit finer, so that it pins
them like a fly on a card.”
“You’ll pin them to-morrow, sir,” said Z9; “you’ll get your verdict, see
if you don’t!”
Z9 spoke with the proud consciousness of one who can respond to
an intellectual pleasure. X012, with a mental organization of less
delicacy, although impressed by so rare a personality, yet retained
the reverence for facts of the honest Englishman.
“He’ve a gift right enough, Bill,” said X012 magisterially, “but the law
is the law to my mind; and black’s black an’ white’s white. If this
woman done the crime—I don’t say she did, mind—the law will ’ang
her. An’ rightly, too. This gentleman is a book-learned man and a
horator,—I know that because I heard Gladstone on Blackheath,—
but the law is the law and horatory ain’t a-going to alter it.”
“I am obliged to you both for your courtesy,” said Northcote, with a
perfect gravity, “and my obligation is even the deeper for the
opinions you have been good enough to express. You are prototypes
of the twelve honest men I am going to sway; and I take it that if
my address were to be launched in its present immature shape, you,
sir, would record your vote for an acquittal, and you, sir, for the
severity of the law?”
“The law is the law I say,” said X012, inflating his chest before the
honor of this direct canvass of his intelligence, “an’ words is words,
although, mind you, sir, I respec’s you, because I heard Gladstone
on Blackheath.”
“I assume,” said Northcote, “that although you admired Gladstone’s
oratory, you did not allow it to influence your judgment?”
“That’s ’is pig-headedness, sir,” said Z9. “That’s just like a Tory; great
horators can talk till all’s blue, and then they can’t get daylight into a
Tory. ‘The law is the law,’ says he; an’ if it come to, he’d hang his
own fayther.”
“I take it, policeman, that you try to keep an open mind, a mind
accessible to new impressions?”
“That is so, sir,” said Z9. “I say with you, sir, that although the law is
the law, human natur’ is human natur’. And although Bill ’Arper is
just a common p’liceman with on’y one stripe, an’ not a lawyer like
you, sir, nor a beak, nor a judge, ’e never goes into court and a-
takes off ’is ’elmet but what ’e feels ’igh-minded.”
“Then, policeman, regarding you in the light of a juryman, it is most
probable that you would want mercy to be extended to the prisoner,
in spite of the law, if you happened to be in your present frame of
mind?”
“Yes, sir, I should in my present frame o’ mind.”
“More shame to you, Bill,” said X012; “you are a nice bloke to be a
copper, an’ no mistake.”
“Close it, ’Orrice,” said Z9, with a restrained enthusiasm; “you
bloomin’ Tories are so thick’eaded you don’t know nothing.”
“Well, gentlemen,” interposed the advocate, brushing the water from
his brief, “as I observe you to be on the brink of an altercation, I will
hasten to discharge you with my best thanks for your kind attention
in order that you may have it out. For the subject will engage your
powers worthily; pursue it, and it will take you into strange places.
But before I leave you to do so, may I ask where I am?”
“Bottom o’ Sydenham ’ill, sir,” chimed both constables as one.
“Good morning, my friends. I must leave you to ponder this subject
or I shall not get home to breakfast.”
The two myrmidons of the law stepped together into the middle of
the road to watch this astonishing figure ascend out of their ken.
“Well, if ’e don’t beat all as ever I ’eard!” was the comment of Z9.
“’E’s not got ’er off yet, and ’e won’t nuther,” rejoined X012. “She’s a
wrong un; an’ if they let ’er off, it won’t be fair to peace.”
“Well, ’e can talk. ’E kind of got ’old of me. I could ha’ stood there all
day.”
“’E kind o’ did me too, but I should shake him off in court. You’ll see
the beak will put a muzzle on ’im. He warn’t talkin’ law, and you’re
no good in court unless you talk law. The old bloke and them K. C.’s
will not stand that sort o’ lip, see if they does.”
“Well, ’ere’s the sergeant comin’. But just to show there’s no ill-
feelin’, I’ll ’ave ’arf a pint with you, mate, that ’e gets her off.”
“Make it a pint, matey. A pint seems more legal.”
XV
TRUTH’S CHAMPION

Northcote had only a hazy notion of his whereabouts. He had never


been in these high latitudes before. He had a dim idea that London
lay “over there;” but upon ascending the steep hill that lay before
him, he found that “over there” was merged in the dark and
enormous bulk of the Crystal Palace.
“Whitcomb was right in his topography,” he laughed. “This is the
route he predicted I should take; therefore it is a perfectly fair
inference to regard it as the wrong one.”
He hailed yet another minion of the law, who no less than his
brethren was communicative.
“You are going away from London as fast as your legs will take you,”
said Z201, and proceeded to set a course which in itself was so
intricate that the young man by no means pledged himself to follow
it.
The terrific central energy still driving him, the wayfarer strode forth
through the rain with an undiminished vigor. By now his clothes were
saturated and lay upon him heavily. But nothing could abate the
force of these concentrated fires which bore him so lightly mile after
mile. Not only did they burn with splendor, but also with a vital
clarity. His lips moved with the phrases that sprang upon them; the
sense of dull power, of unused native force, which had oppressed
him like a nightmare during many nights and days, had been fused
all at once into an immense fecundity of expression. Each minute
blood-vessel that formed a web round the ball of crystallized energy
that was his brain was big with its own peculiar, original, and special
idea. The strangest vistas had opened before his eyes. His faculties
in the first flush of their self-consciousness had grown insolent and
overbearing.
How could a body of common citizens hope to stand against the
battery that would be directed upon them! All the subtleties of the
sophists, all the enthusiasms of the creeds would be as naught in
the presence of such an overweening personal force. How could
such insignificant fragments as these, the mere excrescences of the
universal scheme, who could not make a mind among them, hope to
retain the all-too-precarious standard of their probity when touched
by the wand of the magician? He laughed aloud to the rain when his
thoughts reverted to the two perplexed constables he had left at the
bottom of Sydenham Hill; and how, in spite of the tentativeness of
the effort, as his talent had mounted in him, so that presently its
irresistible force had seemed even to surprise himself, these two
stolid, unemotional Englishmen had nodded their heads in approval,
and had hung breathless upon his words. Only one of God’s great
advocates could hope to perform that miracle under a gas-lamp in
the wind-swept streets on a wet and chill winter’s morning. The old
mystics, delivering with a divine naïveté their surprising message to
mankind, could never have accomplished a feat more wonderful.
His eyes veiled in darkness, his head high-poised yet thrust forward,
his mouth and nostrils filled with cold and deep draughts of air, his
whole being was surrendered to an orgy of freedom and power. For
the first time since he had come to maturity he had found an
occupation for his ferocious energies. It was no unworthy task by
which they were confronted. Thirty was usually the age at which
genius elected to give to the world its first masterpiece. And was it
not as seemly that an advocate should rejoice in a theme as the
statesman, the musician, or the poet? This first essay should be as
complete, as audacious, and as worthy of the sanction of the best
minds of the time, as the chefs-d’œuvres of other representative
spirits. It should stand as a landmark in an art as little understood as
that of truth itself.
Old men on the Woolsack, the most reverend seigniors of the law,
advocates who had received the homage the age is accustomed to
lavish on a scanty pretext, should stand aghast before an alarming
iconoclasm of which he would be the pioneer. His ideas should prove
so revolutionary that these practitioners, complacently drawing their
emoluments, should foregather to turn this magnificent ruffler out of
his inn. The scathing criticisms which the elect of all ages launch
against a Jesus, a Galileo, or a Wagner, before the world has grown
accustomed to their strangeness, he would be called upon to
support; for would not he alone be the true advocate, the heaven-
born, immortal one, while they would remain, as always, complacent
performers of tricks which they mistook for the operations of their
specific talent, subscribers to conventions that were shallow and
nonsensical and in open enmity to the idea of justice for which they
stood as the self-satisfied expression.
As he raced along in the company of these wonderful thoughts
through the south of London, he recognized in himself all the signs
that declare Truth’s authentic champion. It would be his to deliver
more than one rueful blow upon the close-locked portals of
pedantry. “The purblind old man who dares to occupy the seat of
judgment, his authority shall be traversed, it shall be rent in pieces.
As for that amazing creature who will dare to stand up for the
Crown, who will propose to do to death a human being with that
bleak and irascible voice, and the operations of that arrested growth
he calls his intellect, an awful example will have to be made of him.”
There was no end to the succession of deserted streets. Water swam
in shallow pools along the black pavements which seemed to reflect
the color of the sky. The numerous lamps, picked out as so many
dull, yellow balls in the surrounding blackness, suffused their
oppressive rays along the long, flat surfaces so that they appeared
to shine without giving forth a radiance.
How vague and vast seemed these early hours before the dawn!
They did not contain a living soul. The sky, the streets, the dark
houses, the bare trees in the gardens and at the sides of the roads
were soundless, empty, destitute of life. A quietness so profound
appeared uncanny on the outskirts of pandemonium. But
astonishing, desolating as it was, it seemed to aid the furious brain
that was borne so fast in its midst. There was only the echo of the
advocate’s own feet, which came weirdly from across the way, and
the high and labored breathing of his own body.
By the time the hour of seven chimed out from the half-dozen
neighboring steeples of a population that was beginning to cluster
much closer together, he divined that he was pressing nearer to the
heart of the metropolis. He did not stay to inquire of the occasional
wayfarer who was abroad in these regions, but set his face into the
ruck of the streets, where the dark forms of the houses rose like an
impenetrable and endless forest. No fears assailed him as to
whether he would reach his home—the coldest, most inhospitable
home that was ever called upon to harbor a spirit with such
widespread, space-cleaving pinions.
His feet seemed to devour the pavements. His stride was great,
elastic, and unflagging; it was propelled by the lungs, heart, and
muscles of the athlete. In the swing of the arms, the lunge of the
limbs, the lissom sway of the body, there was fine physical power,
and the seething engines that presided over this massive yet elastic
framework were like the boilers of a locomotive which eat up the
miles without fatigue. When excited into action on the football field
the feeling was always upon him that no puny human agent could
stay his course. The feeling was upon him now in an intensified
degree. With will and muscle coöperating to overstride the darkness,
he longed for opposition to declare itself that he might trample it
down.
Near eight o’clock he recognized Waterloo Bridge and the cold
Thames below stealing like a felon through the vapors of the dawn.
With a stupefied surprise he awoke to the sensation of being
launched once more into the sharp and too-definite business of the
time. The pavements were now swarming with people, the roads
with omnibuses, cabs, and vans. Traffic was belching out of every
street; clerks and seamstresses were scurrying to their
employments, masticating their breakfasts as they went. Vendors of
newspapers and hawkers of food were tearing the gray air to pieces
with their cries. He emerged from the orgy of his passion to find that
he was up to the throat and being stifled in pandemonium, even
before he was aware that his feet had entered it.
The lines of palaces across the river, towering tier upon tier above
the embankment, with their majestic bulks half-thrust through the
curtain of December mist which the first streaks of day had seemed
to thicken, fell upon the imagination of the wayfarer, who had
slackened his pace all at once to a footsore limp as he crossed the
bridge and crept towards them. At a distance they stood insolent,
aloof, and cynical. He could hardly believe that in one of these
wonderful caravanserais he, the starving, the friendless, and the
solitary, had eaten and drunk only a few hours before. It was not
feasible that such palaces as these could touch a life so obscure at
any point. Penniless, friendless, lacking even life’s common
necessaries, in the midst of six millions of people, who contended
rudely with the first weapons that came to their hands to enforce
their claims, how could he, whose coat was in holes, whose pockets
were empty, have penetrated to the Mecca of their gods?
Limping into the Strand as the clock at the Law Courts chimed the
hour of eight, his imagination was assailed, not with their
unmeaning mass of architecture, but with that unseen and grisly
bulk which only the eye of his inner consciousness could apprehend.
A shudder convulsed his veins. Less than thirty short hours hence
the gladiator would be called into the arena. He would have to face
the lions with no defence for his nakedness except a small shield in
the use of which he had had no practice, and a sharp but untried
spear.
Climbing up the steep stairs to his garret, his nostrils were affronted
as they had been on so many other occasions by the foulness of the
heavy and noisome air. What a labor it was to reach the locked door
at the top of the highest, the darkest, the most unpleasant story! His
fibres had grown strangely slack, his breathing was no longer joyous
and free. The mighty engines of his mind had ceased suddenly to
vibrate; those pulses which had been so overweening in their
insolence could only flutter now. He had fallen without a warning
from his eminence. His whole being was enveloped in a despicable
flaccidity, a despicable weakness, as he turned the key in the lock
and entered his garret.
He recoiled from the dismal scene that met his eyes with the
shudder that one gives in plunging into icy water. As he stood on the
threshold all the phantoms of his previous despair sprang upon him
from the walls of his chamber and seemed to throw him down.
There was the cold grate with the gray ashes in it still; there the
lamp that had left him in the darkness. The table was there with its
pile of law-books that he had conned with the sickening patience
which tortured him so keenly. Strewn over them were fragments of
the writings which had eaten away the flower of his intelligence
without bringing him a shilling to fill his belly or to pay his rent.
Enveloped within them was the piece of lead by whose aid and with
a skill so ferocious he had destroyed the rat. The confectioner’s
paper was there that had contained his dinner; also the crumbs
which remained to testify to its nature. On the mantelpiece was the
burned and dirty old pipe which he had cherished so much, the only
friend of his adversity; on the floor was the pouch that had not a
grain of tobacco in it. The pool of water was still in the corner,
underneath the discoloration of the plaster in the low sloping roof.
How cold it was! Everything in this horrible apartment seemed to be
rendered icier, more dismal, by the callous gray beams that stole
through the grimy windows with a sullenness that hardly merited the
name of light. Ah, that window with its outlook on oblivion! It all
came back to him with the indescribable pangs of the knife, that the
night before he had leaned out of it, bareheaded, open-mouthed, his
eyes and nostrils cut by blasts of sleet, and had cried his haughty
challenge to a world that grovelled so far below him in the mire.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebooknice.com

You might also like