IP Library › Granted Patent US 12,603,946
Granted Patent B2
US 12,603,946 · App. 18/644,483 · Granted Apr 14, 2026

In-band service chaining in a distributed services environment

Inventors: Anand Singh (Apex, NC); Erich Nahum (New York, NY); Dylan J Brisco (Cary, NC); Douglas Alan Larson (Raleigh, NC); Vijay Kestur (Cary, NC)
Assignee: International Business Machines Corporation
H04L67/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,603,946
App. No.
18/644,483
Granted
Apr 14, 2026
Kind
B2
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 (73)

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.

2 . 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.

3 . 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.

4 . 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.

5 . 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.

6 . 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.

7 . 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.

8 . 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.

9 . 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.

10 . 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.

11 . 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.

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.

13 . 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.

14 . 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.

15 . 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.

16 . 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.

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.

18 . 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.

19 . 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.

20 . 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2024
From: SINGH, ANAND; NAHUM, ERICH; BRISCO, DYLAN J; LARSON, DOUGLAS ALAN; KESTUR, VIJAY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 067226/0396 →
Continuity (1)
Related Publication 20250337818A1 · Oct 30, 2025
References Cited (16)
US 10063415B1 · Kanakarajan · 2018 [cited by examiner]
US 10361969B2 · Bosch · 2019 [cited by applicant]
US 10841256B2 · Ahuja · 2020 [cited by applicant]
US 10938677B2 · Shimamura · 2021 [cited by applicant]
US 11240126B2 · Makwarth · 2022 [cited by applicant]
US 11526413B2 · Barnsteiner · 2022 [cited by applicant]
US 20070027974A1 · Lee · 2007 [cited by examiner]
US 20150195197A1 · Yong · 2015 [cited by applicant]
US 20230291634A1 · Rao · 2023 [cited by applicant]
US 20230409388A1 · Scarfutti · 2023 [cited by examiner]
Jaeger, “Jaeger: Open source, distributed tracing platform”, accessed on Apr. 24, 2024, 5 pages, https://www.jaegertracing.io/. [cited by applicant]
Medhat et al., “Service Function Chaining in Next Generation Networks: State of the Art and Research Challenges”, Accepted From Open Call, IEEE Communications Magazine, Feb. 2017, pp. 216-223. [cited by applicant]
Richardson, Microservice Architecture, “Pattern: Distributed Tracing”, accessed on Feb. 22, 2024, 4 pages, https://microservices.io/patterns/observability/distributed-tracing.html. [cited by applicant]
Sigelman et al., “Dapper, a Large-Scale Distributed Systems Tracing Infrastructure”, Google Technical Report dapper-2010-1, Apr. 2010, 14 pages. [cited by applicant]
Zipkin, “Tracers and Instrumentation”, accessed on Apr. 24, 2024, 1 page, https://zipkin.io/pages/tracers_instrumentation. [cited by applicant]
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or Declaration,” Patent Cooperation Treaty, Jun. 25, 2… [cited by applicant]