diff --git a/servicetalk-client-api/0.42/service-discovery.html b/servicetalk-client-api/0.42/service-discovery.html index 6aee516e8c..aa1b425b18 100644 --- a/servicetalk-client-api/0.42/service-discovery.html +++ b/servicetalk-client-api/0.42/service-discovery.html @@ -1069,7 +1069,7 @@

Service Discovery

A core abstraction in ServiceTalk is its -ServiceDiscoverer +ServiceDiscoverer used by the protocol Clients (eg. HTTP/1.1, HTTP/2, gRPC, etc.).

@@ -1078,7 +1078,7 @@

Service Discovery

ServiceDiscoverer finds server instances associated with a logical name. ServiceTalk assumes that the client operates in a dynamic ephemeral environment and the server instances associated with a logical name may change over time. So, a ServiceDiscoverer returns a Publisher of -ServiceDiscovererEvent(s) +ServiceDiscovererEvent(s) that provide information about server instances, their current relationship to the logical name (i.e. whether it is added or removed from the logical name), and any additional information that is supported by a ServiceDiscoverer implementation. Using this information the LoadBalancer of a @@ -1115,14 +1115,14 @@

Service Discovery

Implementations

-

ServiceDiscoverer +

ServiceDiscoverer abstraction allows for various protocol-independent Service Discovery mechanisms to be implemented. This section will discuss the various implementations offered in ServiceTalk.

Domain Name System (DNS)

-

DefaultDnsServiceDiscovererBuilder +

DefaultDnsServiceDiscovererBuilder is used to configure and build instances of ServiceDiscoverer that use Domain Name System (DNS) to resolve hosts represented by domain name into a set of IP-addresses needed for Clients to connect to the remote servers. Resolution happens every diff --git a/servicetalk-concurrent-api/0.42/async-context.html b/servicetalk-concurrent-api/0.42/async-context.html index a8dd55c455..3ea0b155af 100644 --- a/servicetalk-concurrent-api/0.42/async-context.html +++ b/servicetalk-concurrent-api/0.42/async-context.html @@ -1240,7 +1240,7 @@

ContextMapHolder +ContextMapHolder ) to retain the state. We also need to capture the current context at subscribe, propagate it up the operator chain, and capture it effectively in the source (or in a wrapped Subscriber just outside the source).

@@ -1320,7 +1320,7 @@

AsyncContext member variable (see -ContextMapHolder +ContextMapHolder ). There is also additional wrapping/unwrapping introduced on the asynchronous boundaries so there is additional object allocation.

diff --git a/servicetalk-concurrent-api/0.42/asynchronous-primitives.html b/servicetalk-concurrent-api/0.42/asynchronous-primitives.html index 1cd948ee8e..848dfaa63b 100644 --- a/servicetalk-concurrent-api/0.42/asynchronous-primitives.html +++ b/servicetalk-concurrent-api/0.42/asynchronous-primitives.html @@ -1080,13 +1080,13 @@

Asynchronous Primitives

@@ -1108,8 +1108,8 @@

ReactiveStreams TCK. For interoperability we provide ReactiveStreams -adapters -and JDK Flow adapters.

+adapters +and JDK Flow adapters.

@@ -1203,7 +1203,7 @@

Publisher source

-

A PublisherSource +

A PublisherSource is an asynchronous primitive that mimics ReactiveStreams interfaces and is designed to be used when the source may produce zero or potentially infinite number of results.

@@ -1211,7 +1211,7 @@

Single source

-

A SingleSource +

A SingleSource is an asynchronous primitive that is designed to be used when the source will produce exactly one result or terminate with an error.

@@ -1219,7 +1219,7 @@

Completable source

-

A CompletableSource +

A CompletableSource is an asynchronous primitive that is designed to be used when the source will complete or terminate with an error.

@@ -1277,21 +1277,21 @@

Publisher

-

A Publisher +

A Publisher extends Publisher source and adds commonly used operators.

Single

-

A Single +

A Single extends Single source and adds commonly used operators.

Completable

-

A Completable +

A Completable extends Completable source and adds commonly used operators.

diff --git a/servicetalk-concurrent-api/0.42/blocking-implementation.html b/servicetalk-concurrent-api/0.42/blocking-implementation.html index d304197cca..cb238620fe 100644 --- a/servicetalk-concurrent-api/0.42/blocking-implementation.html +++ b/servicetalk-concurrent-api/0.42/blocking-implementation.html @@ -1144,7 +1144,7 @@

Offloading and asynchronous sources

-

ServiceTalk uses the Executor +

ServiceTalk uses the Executor abstraction to specify the source of threads to be used for the delivery of signals from an asynchronous source. The default signal offloading, if any, used by an asynchronous source is determined by the source. For example, the HTTP sources, in addition to allowing for specification of an offloading executor, provide both direct control of the diff --git a/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html b/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html index 523045e6d7..3ab0f6ab41 100644 --- a/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html +++ b/servicetalk-concurrent-api/0.42/blocking-safe-by-default.html @@ -1108,7 +1108,7 @@

By default, in ServiceTalk, signals are not executed on an EventLoop thread, but instead executed using an -Executor +Executor provided by the application in the order they are received.

@@ -1166,7 +1166,7 @@

ContextMap`s +`ContextMap`s can be used.

diff --git a/servicetalk-examples/0.42/grpc/index.html b/servicetalk-examples/0.42/grpc/index.html index 1469744262..52aa37a683 100644 --- a/servicetalk-examples/0.42/grpc/index.html +++ b/servicetalk-examples/0.42/grpc/index.html @@ -1074,7 +1074,7 @@

gRPC Examples

-

The grpc folder contains examples for +

The grpc folder contains examples for the gRPC application protocol. We provide implementations for the examples proto services provided by gRPC.

@@ -1091,18 +1091,18 @@

Asynchronous

This example demonstrates asynchronous request processing for the hello world API using the -HelloWorldServer +HelloWorldServer and a -HelloWorldClient

+HelloWorldClient

Blocking

This example demonstrates blocking request processing for the hello world API using the -BlockingHelloWorldServer +BlockingHelloWorldServer and a -BlockingHelloWorldClient

+BlockingHelloWorldClient

@@ -1117,28 +1117,28 @@

Asynchronous

Asynchronous processing for different APIs in the route guide service -are demonstrated using the RouteGuideServer +are demonstrated using the RouteGuideServer and the following clients:

@@ -1355,7 +1355,7 @@

@@ -1369,18 +1369,18 @@

Asynchronous

This example demonstrates context with asynchronous request processing using the -RequestResponseContextClient +RequestResponseContextClient and a -RequestResponseContextServer.

+RequestResponseContextServer.

Blocking

This example demonstrates context with blocking request processing using the -BlockingRequestResponseContextClient +BlockingRequestResponseContextClient and a -BlockingRequestResponseContextServer.

+BlockingRequestResponseContextServer.

diff --git a/servicetalk-examples/0.42/http/index.html b/servicetalk-examples/0.42/http/index.html index a2275be380..c7661153b5 100644 --- a/servicetalk-examples/0.42/http/index.html +++ b/servicetalk-examples/0.42/http/index.html @@ -1074,7 +1074,7 @@

HTTP Examples

-

The http +

The http folder contains examples for the HTTP protocol.

@@ -1094,15 +1094,15 @@

@@ -1116,16 +1116,16 @@

@@ -1140,16 +1140,16 @@

<
@@ -1163,16 +1163,16 @@

@@ -1245,13 +1245,13 @@

@@ -1262,19 +1262,19 @@

An example similar to "Hello World" examples, which demonstrates -asynchronous-aggregated, -asynchronous-streaming, -blocking-aggregated, and -blocking-streaming +asynchronous-aggregated, +asynchronous-streaming, +blocking-aggregated, and +blocking-streaming client and server with JSON serialization of simple pojo classes.

-

Client sends a POST request with a JSON payload CreatePojoRequest and expects a response -with Content-Type: application/json and PojoResponse as a payload.

+

Client sends a POST request with a JSON payload CreatePojoRequest and expects a response +with Content-Type: application/json and PojoResponse as a payload.

All serializers and deserializers defined in -SerializerUtils.

+SerializerUtils.

@@ -1283,18 +1283,18 @@

<

Client sends a POST request with a Protobuf payload RequestMessage and expects a response with Content-Type: application/protobuf and ResponseMessage as a payload -(message.proto). +(message.proto). All serializers and deserializers defined in -SerializerUtils.

+SerializerUtils.

@@ -1303,13 +1303,13 @@

An example similar to "Hello World" examples, which demonstrates -blocking-aggregated +blocking-aggregated client and server with byte[] serialization.

Client sends a GET request and expects a response that can be deserialized as byte[]. All serializers and deserializers defined in -SerializerUtils.

+SerializerUtils.

@@ -1348,11 +1348,11 @@

@@ -1367,7 +1367,7 @@

More examples of how to use the resource can be found in the -HelloWorldJaxRsResource javadocs.

+HelloWorldJaxRsResource javadocs.

@@ -1377,7 +1377,7 @@

This example demonstrates some basic functionality of the -HttpMetaData classes:

+HttpMetaData classes:

@@ -1435,13 +1435,13 @@

@@ -1466,7 +1466,7 @@

This example demonstrates the following: - Use of -HttpLifecycleObserver to log a summary of each request/response.

+HttpLifecycleObserver to log a summary of each request/response.

Using the following classes:

@@ -1474,18 +1474,18 @@

@@ -1496,7 +1496,7 @@

DefaultLoadBalancer

-

This example demonstrates how to use the experimental DefaultLoadBalancer:

+

This example demonstrates how to use the experimental DefaultLoadBalancer:

@@ -1587,20 +1587,20 @@

@@ -1619,16 +1619,16 @@

@@ -1651,15 +1651,15 @@

@@ -1674,15 +1674,15 @@

@@ -1735,7 +1735,7 @@

Unix
@@ -1761,10 +1761,10 @@

  • -

    FilesServer - a server whose response body is streamed from a file.

    +

    FilesServer - a server whose response body is streamed from a file.

  • -

    FilesClient - a client that requests and prints response contents.

    +

    FilesClient - a client that requests and prints response contents.

diff --git a/servicetalk-examples/0.42/http/service-composition.html b/servicetalk-examples/0.42/http/service-composition.html index d3dfd340cc..6ddd6abd5b 100644 --- a/servicetalk-examples/0.42/http/service-composition.html +++ b/servicetalk-examples/0.42/http/service-composition.html @@ -1096,12 +1096,12 @@

@@ -1197,8 +1197,8 @@

Service that owns the responsibility of multiplexing the control flow. ServiceTalk does not mandate a specific "Router" implementation but provides a couple reference implementations for common use cases (e.g. -Predicate Router and -JAX-RS via Jersey). The general component diagram of a "Router" +Predicate Router and +JAX-RS via Jersey). The general component diagram of a "Router" is as follows:

@@ -1242,7 +1242,7 @@

<

Each of the above Clients can be created via the -HttpClients static factory.

+HttpClients static factory.

@@ -1277,7 +1277,7 @@

Filters provide a means to filter/intercept and modify each request/response life cycle. Client Filters are used to implement -tracing +tracing metrics, logging, authorization, and any other extension that needs request/response level visibility.

@@ -1323,7 +1323,7 @@

The Client doesn’t have visibility into Connection specific information. For example, the Connection layer knows about transport details such as connected remote address and other elements in the -ConnectionContext. +ConnectionContext. If you have use cases that require this information in the request/response control flow you can use a Connection Filter. The diagram below illustrates how the Connection Filter interacts with the request/response control flow.

@@ -1378,17 +1378,17 @@

The core abstractions -HttpDeserializer and -HttpSerializer are designed to be coupled to a +HttpDeserializer and +HttpSerializer are designed to be coupled to a specific Java type T and accessed via a -HttpSerializationProvider. The -HttpDeserializer and -HttpSerializer are also designed to handle the HTTP +HttpSerializationProvider. The +HttpDeserializer and +HttpSerializer are also designed to handle the HTTP headers data behind the scenes. This means either checking if content-type format is compatible with the deserialization format and also adding a content-type header identifying the resulting serialization format.

@@ -1455,9 +1455,9 @@

< The interim response is not propagated as a response returned by the client because the client has to wait for a final status code returned by the server. There are a couple of other ways how to get visibility into interim response: using wire-logging for HTTP/1.x or frame-logging for HTTP/2 -(see DebuggingExampleClient +(see DebuggingExampleClient as an example) or by monitoring when -WriteObserver +WriteObserver signals that more items are requested to write. diff --git a/servicetalk-http-api/0.42/programming-paradigms.html b/servicetalk-http-api/0.42/programming-paradigms.html index 4c7fa8fa92..9b1f344a73 100644 --- a/servicetalk-http-api/0.42/programming-paradigms.html +++ b/servicetalk-http-api/0.42/programming-paradigms.html @@ -1097,7 +1097,7 @@

See -BlockingHelloWorldServer.

+BlockingHelloWorldServer.

@@ -1113,15 +1113,15 @@

This programming paradigm exposes the request payload body as an Iterable of -Buffers and the response payload +Buffers and the response payload body is written via an -HttpPayloadWriter or an -HttpOutputStream. There are no asynchronous primitives +HttpPayloadWriter or an +HttpOutputStream. There are no asynchronous primitives involved.

@@ -1159,16 +1159,16 @@

Asynchronous and Streaming

This programming paradigm exposes the request payload body as a -Publisher typically of -Buffers (although other types like +Publisher typically of +Buffers (although other types like file regions may be added), the response meta-data is provided by completing a -Single, and the response +Single, and the response payload body is written via a -Publisher.

+Publisher.

@@ -1211,15 +1211,15 @@

This programming paradigm expects the request payload body as an Iterable of -Buffers and the response payload +Buffers and the response payload body is consumed via an Iterable of -Buffers. There are no asynchronous +Buffers. There are no asynchronous primitives involved.

@@ -1271,16 +1271,16 @@

Asynchronous and Streaming

This programming paradigm expects the request payload body as a -Publisher typically of -Buffers (although other types like +Publisher typically of +Buffers (although other types like file regions may be added), the response meta-data is provided via a -Single, and the response +Single, and the response payload body is written via a -Publisher.

+Publisher.

diff --git a/servicetalk-http-router-jersey/0.42/index.html b/servicetalk-http-router-jersey/0.42/index.html index 1d8122b2b6..2915189a93 100644 --- a/servicetalk-http-router-jersey/0.42/index.html +++ b/servicetalk-http-router-jersey/0.42/index.html @@ -1751,7 +1751,7 @@

@Suspended AsyncResponse, CompletionStage responses or Server-Sent Events. A workaround for this consists in using the Predicate router to selectively offload such resources, as shown in this -test. +test.

diff --git a/servicetalk-http-security-jersey/0.42/index.html b/servicetalk-http-security-jersey/0.42/index.html index 20c4e61ae8..16eb8ddd98 100644 --- a/servicetalk-http-security-jersey/0.42/index.html +++ b/servicetalk-http-security-jersey/0.42/index.html @@ -1110,7 +1110,7 @@

-

BasicAuthSecurityContextFilters +

BasicAuthSecurityContextFilters provides factory methods for the two main types of JAX-RS filters:

diff --git a/servicetalk-loadbalancer/0.42/index.html b/servicetalk-loadbalancer/0.42/index.html index 4003e95c9d..e9d4cf4c61 100644 --- a/servicetalk-loadbalancer/0.42/index.html +++ b/servicetalk-loadbalancer/0.42/index.html @@ -1087,7 +1087,7 @@

Load Balancing

One of the core abstractions in ServiceTalk is its Client side -LoadBalancer +LoadBalancer underpinning the various protocol Clients (eg. HTTP/1.1, HTTP/2, gRPC, etc.).

@@ -1128,14 +1128,14 @@

Connection abstraction which is the basis for all protocol-specific Connections allows the -LoadBalancer +LoadBalancer implementations to be reusable across all the protocols.

The LoadBalancer is able to combine availability information from -ServiceDiscoverer +ServiceDiscoverer and protocol metrics from the -ConnectionFactory +ConnectionFactory (e.g. latency, …​) in order to pick a more optimal Connection for each request.

@@ -1145,14 +1145,14 @@

As mentioned earlier the Client-Side -LoadBalancer +LoadBalancer abstraction allows for various protocol-independent LoadBalancing algorithms to be implemented. This section will discuss the various implementations offered in ServiceTalk by highlighting their characteristics.

Round Robin

-

RoundRobinLoadBalancer +

RoundRobinLoadBalancer is a common and simple LoadBalancer implementation that is currently the default when creating Clients. Its main goal is to spread the load evenly between all known resolved addresses as provided by the Service Discovery mechanism.

diff --git a/servicetalk/0.42/blocking-safe-by-default.html b/servicetalk/0.42/blocking-safe-by-default.html index 0b96244c1d..4e20080069 100644 --- a/servicetalk/0.42/blocking-safe-by-default.html +++ b/servicetalk/0.42/blocking-safe-by-default.html @@ -1137,7 +1137,7 @@

@@ -1152,7 +1152,7 @@

Execution Strategy

-

The primary purpose of an Execution Strategy +

The primary purpose of an Execution Strategy is to define which interaction paths of a particular transport or protocol layer require offloading. For example, at the HTTP transport layer, four offload paths are available:

@@ -1200,7 +1200,7 @@

Execution Strategy +Execution Strategy used for a client/server. This disables all intelligence around finding the optimized strategy and just uses the provided strategy.

diff --git a/servicetalk/0.42/performance.html b/servicetalk/0.42/performance.html index beb4e8a199..a54c36086e 100644 --- a/servicetalk/0.42/performance.html +++ b/servicetalk/0.42/performance.html @@ -1266,7 +1266,7 @@

client and service. If you are willing to use an advanced, internal, experimental, subject to change at any time API there is also -FlushStrategies +FlushStrategies that provides control over flushing. Here is a quick summary of this internal API.

@@ -1382,10 +1382,10 @@

Offloading and ExecutionStrategy

-

ExecutionStrategy +

ExecutionStrategy is the core abstraction ServiceTalk uses to drive offloading delivering signals and data from the IO EventLoop threads. For HTTP there is -HttpExecutionStrategy +HttpExecutionStrategy which adds protocol specific offload points to be used by the clients and services. See Safe to Block for more context into offloading and threading models.

@@ -1397,7 +1397,7 @@

routers that provide a per-route API customization (e.g. JAX-RS via Jersey and -Predicate Router).

+Predicate Router).

If you are using the appropriate programming model, @@ -1417,7 +1417,7 @@

  • Filters implement -HttpExecutionStrategyInfluencer +HttpExecutionStrategyInfluencer (or similar for your protocol) APIs

  • @@ -1446,7 +1446,7 @@

    flushing and offloading). A paradigm is chosen when constructing the client or server, transforming a client on demand on a per-request basis (e.g. -HttpClient#asBlockingClient() +HttpClient#asBlockingClient() ), or leveraging a service router’s per-route ability to support the different paradigms. The following table is a summary of how the programming paradigm affects flushing and offloading. Please consider reading the detailed documentation on @@ -1756,9 +1756,9 @@

    save and restore the current context before/after the asynchronous control flow boundary. In order to provide a static API ThreadLocal is also required, although an optimization (e.g. -ContextMapHolder +ContextMapHolder ) is used to minimize this cost. This ThreadLocal optimization is enabled by default and can be enabled by using our -DefaultThreadFactory +DefaultThreadFactory if you use a custom Executor.

    @@ -1927,13 +1927,13 @@

    JLS, Initial Values of Variables. This ensures you never have to worry about reading uninitialized memory, however in ServiceTalk the allocated memory -is wrapped in a Buffer +is wrapped in a Buffer that maintains read and write indices to prevent reading uninitialized memory. Therefore zeroing of `Buffer`s is not necessary and adds considerable overhead while allocating which affects throughput.

    ServiceTalk bypasses this zeroing for the default direct -BufferAllocator +BufferAllocator on JDK8. On JDK9+ due to the additional protections put in place, one needs to provide additional system properties to take advantage of this optimization.

    @@ -1963,7 +1963,7 @@

    These flags do not bypass zeroing when memory is allocated directly through new byte[], ByteBuffer.allocate(int), or ByteBuffer.allocateDirect(int), this only optimizes the buffers created with the ServiceTalk -BufferAllocators. +BufferAllocators.