# US 12,015,673 B1 · Eventually-consistent message delivery system for edge applications

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

- Number: US 12,015,673 B1
- Document ID: US12015673B1
- Status: Granted
- Kind: B1
- Application number: 18/457,640
- Filed: 2023-08-29
- Granted: 2024-06-18
- Earliest claimed: 2023-08-29
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Andre Jean Marie Surcouf; Trevor Adam Whinmill; Benjamin William Ryder; Pablo Garcia del Valle
- Web page: https://patentgrep.com/patent/US12015673B1

## CPC

- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/63: Routing a service request depending on the request content or context
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In one embodiment, a method by a site router agent at an edge site comprises determining that a first application instance becomes running on the edge site, where the first application instance is associated with a first unique identifying information, sending a report to a control plane of an edge backend indicating that the first application instance becomes available at the edge site, retrieving a first message from a message router at the edge backend, determining that the first message is destined to the first application instance based on a destination field of the first message, storing the first message into a storage communicatively connected to the site router agent, establishing a network connection with the first application instance, and sending the first message to the first application instance upon establishing the network connection.

## Claims

### Claim 1

A method comprising, by a site router agent at an edge site:
determining that a first application instance becomes running on the edge site, wherein the first application instance is associated with a first unique identifying information comprising a first globally unique identifying information and a first locally unique identifying information;
sending, to a control plane of an edge backend, a report indicating that the first application instance becomes available at the edge site, the report comprising the first locally unique identifying information;
retrieving, from a message router at the edge backend, a first message;
determining, based on a destination field of the first message, that the first message is destined to the first application instance;
storing the first message into a storage communicatively connected to the site router agent;
establishing a network connection with the first application instance; and
sending, upon establishing the network connection, the first message to the first application instance.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first globally unique identifying information comprises a tenant identifier and a site identifier associated with the edge site.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first locally unique identifying information comprises an application identifier, a deployment identifier, and an instance sequence number.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining the first application instance becomes running on the edge site is based on a registration request from the first application instance.

### Claim 5 (depends on 1)

The method of claim 1, wherein, upon receiving the report, the control plane constructs the first unique identifying information by combining the first globally unique identifying information with the first locally unique identifying information in the report, and wherein the control plane store the first unique identifying information into a database communicatively connected to the control plane.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining that the first message is destined to the first application instance comprises determining, for each position of the first unique identifying information, that an identifier at the position of the first unique identifying information matches an identifier at a corresponding position of a destination information presented in the destination field.

### Claim 7 (depends on 6)

The method of claim 6, wherein the destination information comprises a wildcard identifier at a particular position to indicate that any identifier at a corresponding position of a unique identifying information matches the wildcard identifier.

### Claim 8 (depends on 6)

The method of claim 6, wherein the destination information comprises a list of identifiers at a particular position to indicate that any identifier in the list at a corresponding position of a unique identifying information matches the list of identifiers.

### Claim 9 (depends on 1)

The method of claim 1, wherein establishing the network connection with the first application instance comprises:
receiving a network connection request from the first application instance; and
completing, in response to the receiving the network connection request, the network connection establishment.

### Claim 10 (depends on 1)

The method of claim 1, wherein establishing the network connection with the first application instance comprises:
sending a network connection request to the first application instance repeatedly until receiving a response to the network connection request; and
completing the network connection establishment.

### Claim 11 (depends on 1)

The method of claim 1, wherein the first message comprises an indication that a delivery notification is required, further comprising:
forwarding, to the message router, after sending the first message to the first application instance, a delivery notification indicating that the first message is successfully delivered to the first application instance, wherein an intended receiver of the delivery notification is a sender of the first message.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
receiving, from the first application instance, a second message.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
determining, based on a destination field of the second message, that at least one or more intended receivers of the second message are outside the edge site; and
forwarding, to the message router, the second message.

### Claim 14 (depends on 13)

The method of claim 13, wherein forwarding the second message comprises:
storing the second message to the storage;
establishing a network connection with the message router;
sending the second message to the message router via the established network connection; and
removing the second message from the storage.

### Claim 15 (depends on 12)

The method of claim 12, further comprising:
determining, based on a destination field of the second message, that at least one or more intended receivers of the second message are second application instances running on the edge site;
storing the second message to the storage; and
sending, to each of the second application instances, the second message.

### Claim 16 (depends on 15)

The method of claim 15, wherein storing the second message to the storage comprises storing a copy of the second message for each of the second application instances, further comprising:
removing, after sending the second message to each of the second application instances, a corresponding copy of the second message from the storage.

### Claim 17 (depends on 15)

The method of claim 15, wherein storing the second message to the storage comprises storing the second message and a list of the second application instances, further comprising:
updating, after sending the second message to each of the second application instance, the list to indicate that sending the second message to the second application instance is completed.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
removing, after sending the second message to all second application instances in the list, the second message and the list from the storage.

### Claim 19

A system comprising:
one or more processors; and
one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by one or more of the processors to cause a site router agent at an edge site to:
determine that a first application instance becomes running on the edge site, wherein the first application instance is associated with a first unique identifying information comprising a first globally unique identifying information and a first locally unique identifying information;
send, to a control plane of an edge backend, a report indicating that the first application instance becomes available at the edge site, the report comprising the first locally unique identifying information;
retrieve, from a message router at the edge backend, a first message;
determine, based on a destination field of the first message, that the first message is destined to the first application instance;
store the first message into a storage communicatively connected to the site router agent;
establish a network connection with the first application instance; and
send, upon establishing the network connection, the first message to the first application instance.

### Claim 20

One or more computer-readable non-transitory storage media embodying software that is operable when executed to, by a site router agent at an edge site to:
determine that a first application instance becomes running on the edge site, wherein the first application instance is associated with a first unique identifying information comprising a first globally unique identifying information and a first locally unique identifying information;
send, to a control plane of an edge backend, a report indicating that the first application instance becomes available at the edge site, the report comprising the first locally unique identifying information;
retrieve, from a message router at the edge backend, a first message;
determine, based on a destination field of the first message, that the first message is destined to the first application instance;
store the first message into a storage communicatively connected to the site router agent;
establish a network connection with the first application instance; and
send, upon establishing the network connection, the first message to the first application instance.
