IP Library Granted Patent US 12,493,456
Granted Patent B2
US 12,493,456 · App. 18/109,005 · Granted Dec 9, 2025

Methods and systems for continuous asynchronous code deployment

Inventors: Jeffrey Hart (Union City, CA); Andrew Backes (San Mateo, CA); Alex Bello (San Francisco, CA); Isaac Mosquera (San Mateo, CA)
Assignee: Harness Inc.
G06F8/65G06F9/546
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,493,456
App. No.
18/109,005
Granted
Dec 9, 2025
Kind
B2
Abstract

Systems, methods and computer program products are presented for the automated deployment of a code update to a device. One or more clusters of devices may be connected to a development environment for deployment of one or more code updates through respective development pipelines to the respective clusters of devices. A first cluster of devices receives a module for implementation of an agent for the first cluster of devices and a central queue local to a centralized controller of the development environment. The agent reports at least one status of a respective device to the centralized controller of the development environment, whereby that status may correspond to a code update image pulled onto the respective device. The agent retrieves one or more instruction messages from the centralized controller in response to the reported status of the respective device.

Claims (57)

1 . A computer-implemented method comprising:

implementing an agent within a first cluster of devices connected to a development environment for deployment of one or more code updates through respective development pipelines to one or more clusters of devices,

wherein implementing the agent includes installing an agent within the first cluster of devices, installing an agent queue that detects messages between each device of the cluster of devices and an asynchronous message bus, and installing a central queue to detect messages transmitted between the asynchronous message bus and a centralized controller within the development environment;

detecting, by the central queue, a code update image generated by the centralized controller and to be provided to a first device of the cluster of devices by the centralized controller through an asynchronous message bus;

retrieving, by the agent, the code update image from the central queue;

providing the retrieved code update image to the first device by the agent;

reporting, by the agent, at least one status of the first device to the centralized controller of the development environment, the at least one status corresponding to a code update image pulled onto the first device, wherein the centralized controller includes an asynchronous message handler that receives data from the each device of the cluster of devices, the data describing what hardware is present or what software is running on a respective device; and

retrieving, by the agent, one or more instruction messages from the centralized controller in response to the reported status of the respective device.

2 . The computer-implemented method of claim 1 , further comprising:

authenticating the agent to provide the agent access to connect the agent queue to the asynchronous message bus.

3 . The computer-implemented method of claim 1 , further comprising:

accessing, by the agent, instructions from the central queue and forwarding the instructions to one of the respective cluster of devices.

4 . The computer-implemented method of claim 1 , further comprising:

connecting the central queue to an asynchronous message bus to enable the agent to collect the one or more instructions that have placed into the asynchronous message bus by the centralized controller.

5 . The computer-implemented method of claim 4 , wherein the asynchronous message bus enables communication between the cluster of devices and the centralized controller.

6 . The computer-implemented method of claim 1 , wherein implementing the agent comprises:

connecting the agent queue to an asynchronous message bus to collect status messages sent from the cluster of devices to the centralized controller.

7 . The computer-implemented method of claim 1 , further comprising:

connecting a central queue local to the centralized controller to the asynchronous message bus to enable the agent to collect one or more instructions placed into the asynchronous message bus by a centralized system.

8 . A system comprising one or more processors, and a non-transitory computer-readable medium including one or more sequences of instructions that, when executed by the one or more processors, cause the system to perform operations comprising:

implementing an agent within a first cluster of devices connected to a development environment for deployment of one or more code updates through respective development pipelines to one or more clusters of devices,

wherein implementing the agent includes installing an agent within the first cluster of devices, installing an agent queue that detects messages between each device of the cluster of devices and an asynchronous message bus, and installing a central queue to detect messages transmitted between the asynchronous message bus and a centralized controller within the development environment;

detecting, by the central queue, a code update image generated by the centralized controller and to be provided to a first device of the cluster of devices by the centralized controller through an asynchronous message bus;

retrieving, by the agent, the code update image from the central queue;

providing the retrieved code update image to the first device by the agent;

reporting, by the agent, at least one status of the first device to the centralized controller of the development environment, the at least one status corresponding to a code update image pulled onto the first device, wherein the centralized controller includes an asynchronous message handler that receives data from the each device of the cluster of devices, the data describing what hardware is present or what software is running on a respective device; and

retrieving, by the agent, one or more instruction messages from the centralized controller in response to the reported status of the respective device.

9 . The system of claim 8 , further comprising the operations of:

authenticating the agent to provide the agent access to connect the agent queue to an asynchronous message bus.

10 . The system of claim 8 , further comprising operations of:

accessing, by the agent, instructions from a central queue and forwarding the instructions to one of the respective devices.

11 . The system of claim 8 , further comprising operations of:

connecting the central queue to an asynchronous message bus to enable the agent to collect the one or more instructions that have placed into the asynchronous message bus by the centralized controller.

12 . The system of claim 11 , wherein the asynchronous message bus enables communication between a first cluster of devices and the centralized controller.

13 . The system of claim 8 , wherein implementing the agent comprises:

connecting an agent queue to an asynchronous message bus to collect status messages sent from a first cluster of devices to the centralized controller.

14 . The system of claim 8 , further comprising operations of:

connecting a central queue local to the centralized controller to an asynchronous message bus to enable the agent to collect one or more instructions placed into the asynchronous message bus by a centralized system.

15 . A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to perform operations of:

implementing an agent within a first cluster of devices connected to a development environment for deployment of one or more code updates through respective development pipelines to one or more clusters of devices,

wherein implementing the agent includes installing an agent within the first cluster of devices, installing an agent queue that detects messages between each device of the cluster of devices and an asynchronous message bus, and installing a central queue to detect messages transmitted between the asynchronous message bus and a centralized controller within the development environment;

detecting, by the central queue, a code update image generated by the centralized controller and to be provided to a first device of the cluster of devices by the centralized controller through an asynchronous message bus;

retrieving, by the agent, the code update image from the central queue;

providing the retrieved code update image to the first device by the agent;

reporting, by the agent, at least one status of the first device to the centralized controller of the development environment, the at least one status corresponding to a code update image pulled onto the first device, wherein the centralized controller includes an asynchronous message handler that receives data from the each device of the cluster of devices, the data describing what hardware is present or what software is running on a respective device; and

retrieving, by the agent, one or more instruction messages from the centralized controller in response to the reported status of the respective device.

16 . The computer program product of claim 15 , further comprising the operations of:

authenticating the agent to provide the agent access to connect the agent queue to an asynchronous message bus.

17 . The computer program product of claim 15 , further comprising operations of:

accessing, by the agent, instructions from a central queue and forwarding the instructions to one of the respective devices.

18 . The computer program product of claim 15 , further comprising operations of:

connecting the central queue to an asynchronous message bus to enable the agent to collect the one or more instructions that have placed into the asynchronous message bus by the centralized controller.

19 . The computer program product of claim 18 , wherein the asynchronous message bus enables communication between a first cluster of devices and the centralized controller.

20 . The system of claim 15 , wherein implementing the agent comprises:

connecting an agent queue to an asynchronous message bus to collect status messages sent from a first cluster of devices to the centralized controller.

21 . The computer program product of claim 15 , further comprising operations of:

connecting a central queue local to the centralized controller to an asynchronous message bus to enable the agent to collect one or more instructions placed into the asynchronous message bus by a centralized system.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075689/0062 →
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075689/0281 →
SECURITY INTEREST Recorded Mar 31, 2026
From: HARNESS INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 074240/0665 →
SECURITY INTEREST Recorded Mar 31, 2026
From: HARNESS INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 074240/0707 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: ARMORY, INC.
To: HARNESS INC.
Reel/Frame 066767/0847 →
Continuity (3)
Continuation 17028691 · Sep 22, 2020
Provisional Application 62904044 · Sep 23, 2019
Related Publication 20230195449A1 · Jun 22, 2023
References Cited (22)
US 8458462B1 · Hanna · 2013 [cited by examiner]
US 8825708B1 · Sunday · 2014 [cited by examiner]
US 9916233B1 · Qureshi · 2018 [cited by examiner]
US 11226887B1 · Sharifi Mehr · 2022 [cited by examiner]
US 11372634B1 · Gabrielson · 2022 [cited by examiner]
US 20060052985A1 · Ito · 2006 [cited by examiner]
US 20100070961A1 · Auer · 2010 [cited by examiner]
US 20160246586A1 · Madanapalli · 2016 [cited by examiner]
US 20170180266A1 · Frank et al. · 2017 [cited by applicant]
US 20170264523A1 · Madgwick · 2017 [cited by examiner]
US 20180196741A1 · Qureshi · 2018 [cited by examiner]
US 20180324204A1 · McClory · 2018 [cited by examiner]
US 20190317754A1 · Mosquera · 2019 [cited by examiner]
US 20190347422A1 · Abadi · 2019 [cited by examiner]
US 20200019318A1 · Sakashita · 2020 [cited by examiner]
US 20200169616A1 · Chen · 2020 [cited by examiner]
US 20210081190A1 · Fagiani · 2021 [cited by examiner]
US 20240236649A9 · Li · 2024 [cited by examiner]
EP 3128418A1 · 2017 [cited by examiner]
KR 20080078431A · 2008 [cited by examiner]
WO 0117250A1 · 2001 [cited by applicant]
International Search Report in International Application No. PCT/2020/052023, mailed Jan. 12, 2021. [cited by applicant]