# US 12,603,946 B2 · In-band service chaining in a distributed services environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,603,946 B2
- Document ID: US12603946B2
- Status: Granted
- Kind: B2
- Application number: 18/644,483
- Filed: 2024-04-24
- Published: 2025-10-30
- Granted: 2026-04-14
- Earliest claimed: 2024-04-24
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Anand Singh; Erich Nahum; Dylan J Brisco; Douglas Alan Larson; Vijay Kestur
- Web page: https://patentgrep.com/patent/US12603946B2

## CPC

- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06Q 10/06316: {Sequencing of tasks or work}
- G06Q 10/0633: Workflow analysis
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/55: Push-based network services
- H04L 67/63: Routing a service request depending on the request content or context
- G06F 2209/5017: Task decomposition
- G06F 2209/541: Client-server
- G06F 2209/547: Messaging middleware
- G06F 2209/548: Queue
- G06F 2209/549: Remote execution
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Described are techniques for in-band service chaining. The techniques include generating a topic chain for a service request that spans a set of service nodes in a distributed services environment. The topic chain indicates a sequence of topics to publish the service request so as to provide the service request to the set of service nodes via the sequence of topics. The techniques further include publishing the service request and the topic chain in a message to a first topic indicated by the topic chain to provide the service request and the topic chain to a first service node in the set of service nodes, and to allow the first service node to subsequently publish the message to a second topic indicated by the topic chain, so as to provide the service request and topic chain to a second service node in the set of service nodes.

## Claims

### Claim 1

A computer-implemented method comprising:
generating a topic chain for a service request that spans a set of service nodes in a distributed services environment, wherein the topic chain indicates a sequence of topics to publish the service request so as to provide the service request to the set of service nodes by way of the sequence of topics; and
publishing the service request and the topic chain in a message to a first topic indicated by the topic chain to provide the service request and the topic chain to a first service node in the set of service nodes, and to allow the first service node to subsequently publish the message to a second topic indicated by the topic chain, so as to provide the service request and topic chain to a second service node in the set of service nodes.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein generating the topic chain for the service request further comprises:
identifying a rule list that corresponds to the service request, wherein the rule list defines the sequence of topics for publishing the service request to allow the set of service nodes to accomplish the service request; and
generating the topic chain to indicate the sequence of topics defined by the rule list.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein generating the topic chain for the service request further comprises:
obtaining status information for service nodes in the distributed services environment;
selecting individual service nodes to handle aspects of the service request based on the status information;
identifying topics to which the individual service nodes subscribe; and
generating the topic chain to indicate the topics.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein generating the topic chain for the service request further comprises:
generating the topic chain at a classifier node implemented in the distributed services environment to generate topic chains for service requests, wherein the service requests are provided to the classifier node by way of a topic to which the classifier node subscribes.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein generating the topic chain for the service request further comprises:
generating the topic chain at a service node included in the set of service nodes, wherein the service node is configured to act as both a service node to provide a microservice and a classifier to generate topic chains for service requests.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein publishing the service request and the topic chain further comprises:
incorporating the topic chain in metadata of the message for publishing the service request to the set of service nodes.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein publishing the service request and the topic chain further comprises:
incorporating the topic chain in a payload field of the message of the service request as key-value pairs.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving, at a service node in the set of service nodes, the message containing the service request and the topic chain;
performing an aspect of the service request that corresponds to the service node;
identifying a next topic in the topic chain; and
publishing the message containing the service request and the topic chain to the next topic.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein identifying the next topic in the topic chain further comprises:
modifying, by the service node, the topic chain to indicate remaining topics in the topic chain to which the message has yet to be published.

### Claim 10 (depends on 8)

The computer-implemented method of claim 8, further comprising:
inserting, by the service node, tracing information into the message, where the tracing information tracks and records activities of the service node related to performing the service request.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, further comprising:
extracting, at an extractor node, the tracing information for the service request from the message after at least a portion of the service request has been completed; and
logging the service request using the tracing information extracted from the message.

### Claim 12

A system comprising:
one or more computer readable storage media storing program instructions and one or more processors which, in response to executing the program instructions, are configured to:
generate a topic chain for a service request that spans a set of service nodes in a distributed services environment, wherein the topic chain indicates a sequence of topics to publish the service request so as to provide the service request to the set of service nodes by way of the sequence of topics; and
publish the service request and the topic chain in a message to a first topic indicated by the topic chain to provide the service request and the topic chain to a first service node in the set of service nodes, and to allow the first service node to subsequently publish the message to a second topic indicated by the topic chain, so as to provide the service request and topic chain to a second service node in the set of service nodes.

### Claim 13 (depends on 12)

The system of claim 12, wherein the program instructions configured to cause the one or more processors to generate the topic chain for the service request are further configured to cause the one or more processors to:
obtain status information for service nodes in the distributed services environment;
select individual service nodes to handle aspects of the service request based on the status information;
identify topics to which the individual service nodes subscribe; and
generate the topic chain to indicate the topics.

### Claim 14 (depends on 12)

The system of claim 12, wherein the program instructions are further configured to cause the one or more processors to:
receive, at a service node in the set of service nodes, the message containing the service request and the topic chain;
perform an aspect of the service request that corresponds to the service node;
modify the topic chain to indicate remaining topics in the topic chain to which the message has yet to be published; and
publish the message containing the service request and the topic chain to a next topic in the topic chain.

### Claim 15 (depends on 12)

The system of claim 12, wherein the program instructions are further configured to cause the one or more processors to:
receive, at a service node in the set of service nodes, the message containing the service request and the topic chain;
perform an aspect of the service request that corresponds to the service node;
insert, by the service node, tracing information into the message, where the tracing information tracks and records activities of the service node related to performing the service request; and
publish the message containing the tracing information to a next topic in the topic chain.

### Claim 16 (depends on 15)

The system of claim 15, wherein the program instructions are further configured to cause the one or more processors to:
receive the message containing the tracing information at an extractor node after at least a portion of the service request has been completed;
extract the tracing information for the service request from the message; and
log the service request using the tracing information extracted from the message.

### Claim 17

A computer program product comprising:
one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions configured to cause one or more processors to:
generate a topic chain for a service request that spans a set of service nodes in a distributed services environment, wherein the topic chain indicates a sequence of topics to publish the service request so as to provide the service request to the set of service nodes by way of the sequence of topics; and
publish the service request and the topic chain in a message to a first topic indicated by the topic chain to provide the service request and the topic chain to a first service node in the set of service nodes, and to allow the first service node to subsequently publish the message to a second topic indicated by the topic chain, so as to provide the service request and topic chain to a second service node in the set of service nodes.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the program instructions configured to cause the one or more processors to generate the topic chain for the service request are further configured to cause the one or more processors to:
obtain status information for service nodes in the distributed services environment;
select individual service nodes to handle aspects of the service request based on the status information;
identify topics to which the individual service nodes subscribe; and
generate the topic chain to indicate the topics.

### Claim 19 (depends on 17)

The computer program product of claim 17, wherein the program instructions are further configured to cause the one or more processors to:
receive, at a service node in the set of service nodes, the message containing the service request and the topic chain;
perform an aspect of the service request that corresponds to the service node;
modify the topic chain to indicate remaining topics in the topic chain to which the message has yet to be published; and
publish the message containing the service request and the topic chain to a next topic in the topic chain.

### Claim 20 (depends on 17)

The computer program product of claim 17, wherein the program instructions are further configured to cause the one or more processors to:
receive, at a service node in the set of service nodes, the message containing the service request and the topic chain;
perform an aspect of the service request that corresponds to the service node;
insert, by the service node, tracing information into the message, where the tracing information tracks and records activities of the service node related to performing the service request to allow an extractor node to extract the tracing information for the service request from the message and log the service request using the tracing information; and
publish the message containing the tracing information to a next topic in the topic chain.
