IP Library Granted Patent US 12,470,566
Granted Patent B1
US 12,470,566 · App. 18/999,167 · Granted Nov 11, 2025

Constraint-based resource planning for server clusters

Inventors: Thomas George Snyder, III (New York, NY); Deyu Jiao (Seattle, WA); Prachetaa Raghavan (Sammamish, WA); Ajit Yagaty (Sammamish, WA); Roger Hoover (San Mateo, CA); Daniel Raymond LaMotte (WaKeeney, KS)
Assignee: Confluent, Inc.
H04L63/105
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,470,566
App. No.
18/999,167
Granted
Nov 11, 2025
Kind
B1
Abstract

When a resource is being deployed to the cloud, there are many possible locations for the deployment. When a resource is created, it is placed under a parent resource. As discussed herein, a system for applying constraints to resources is used. A constraint is a type of metadata that helps manage, identify, organize, and filter resources. Defined constraints are a set of constraints that, for a particular resource, are either set or not set. Custom constraints are key/value pairs that have predefined keys, but variable values. New constraints may be added to the system without modifying source code. When a resource creation request is received, constraints of the resource being created are checked against the constraints of the candidate parent resources. The resource is then deployed to a parent resource for which it does not violate any constraints.

Claims (65)

1 . A system comprising:

one or more hardware processors; and

a memory that stores instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising:

receiving a request to deploy a child resource to a cloud environment;

determining, based on the request, a type of the child resource and a set of constraints;

determining, based on the type of the child resource, a set of candidate parent resources that comprises a first candidate parent resource that is dedicated to running untrusted applications and a second candidate parent resource that is dedicated to running trusted applications;

determining, based on the set of constraints of the request and a set of constraints of each of the candidate parent resources, a set of parent resources to which the child resource may be deployed;

selecting a parent resource of the set of parent resources; and

deploying the child resource to the selected parent resource.

2 . The system of claim 1 , wherein:

the set of constraints of the request comprises a first constraint and a second constraint; and

the determining of the set of parent resources to which the child resource may be deployed is based on presence of the first constraint and a value of the second constraint.

3 . The system of claim 1 , wherein the set of parent resources comprises a set of realms and each realm of the set of realms corresponds to a different cloud services provider.

4 . The system of claim 1 , wherein the operations further comprise:

prior to the receiving of the request to deploy the child resource, storing the set of constraints of the selected parent resource in a row of a database table that comprises a first field for an identifier of the selected parent resource, a second field for a list of constraints that have meaning based on their presence or absence, and a third field for a list of constraints and their values, each constraint in the list of constraints having meaning based on its value.

5 . The system of claim 1 , wherein:

the type of the child resource is a network; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of realms.

6 . The system of claim 1 , wherein:

the type of the child resource is a container environment; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of networks.

7 . The system of claim 1 , wherein:

the type of the child resource is a physical cluster; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of container environments.

8 . The system of claim 1 , wherein:

the type of the child resource is a logical cluster; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of physical clusters.

9 . A method comprising:

receiving, by at least one hardware processor, a request to deploy a child resource to a cloud environment;

determining, based on the request, a type of the child resource and a set of constraints;

determining, based on the type of the child resource, a set of candidate parent resources that comprises a first candidate parent resource that is dedicated to running untrusted applications and a second candidate parent resource that is dedicated to running trusted applications;

determining, based on the set of constraints of the request and a set of constraints of each of the candidate parent resources, a set of parent resources to which the child resource may be deployed;

selecting a parent resource of the set of parent resources; and

deploying the child resource to the selected parent resource.

10 . The method of claim 9 , wherein:

the set of constraints of the child resource comprises a first constraint and a second constraint; and

the determining of the set of parent resources to which the child resource may be deployed is based on presence of the first constraint and a value of the second constraint.

11 . The method of claim 9 , wherein the set of candidate parent resources comprises a set of realms and each realm of the set of realms corresponds to a different cloud services provider.

12 . The method of claim 9 , further comprising:

prior to the receiving of the request to deploy the child resource, storing the set of constraints of the selected parent resource in a row of a database table that comprises a first field for an identifier of the selected parent resource, a second field for a list of constraints that have meaning based on their presence or absence, and a third field for a list of constraints and their values, each constraint in the list of constraints having meaning based on its value.

13 . The method of claim 9 , wherein:

the type of the child resource is a network; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of realms.

14 . The method of claim 9 , wherein:

the type of the child resource is a container environment; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of networks.

15 . The method of claim 9 , wherein:

the type of the child resource is a physical cluster; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of container environments.

16 . A machine-storage medium comprising instructions that, when executed by one or more hardware processors of a machine, cause the machine to perform operations comprising:

receiving a request to deploy a child resource to a cloud environment;

determining, based on the request, a type of the child resource and a set of constraints;

determining, based on the type of the child resource, a set of candidate parent resources that comprises a first candidate parent resource that is dedicated to running untrusted applications and a second candidate parent resource that is dedicated to running trusted applications;

determining, based on the set of constraints of the request and a set of constraints of each of the candidate parent resources, a set of parent resources to which the child resource may be deployed;

selecting a parent resource of the set of parent resources; and

deploying the child resource to the selected parent resource.

17 . The machine-storage medium of claim 16 , wherein:

the set of constraints of the request comprises a first constraint and a second constraint; and

the determining of the set of parent resources to which the child resource may be deployed is based on presence of the first constraint and a value of the second constraint.

18 . The machine-storage medium of claim 16 , wherein the set of parent resources comprises a set of realms and each realm of the set of realms corresponds to a different cloud services provider.

19 . The machine-storage medium of claim 16 , wherein the operations further comprise:

prior to the receiving of the request to deploy the child resource, storing the set of constraints of the selected parent resource in a row of a database table that comprises a first field for an identifier of the selected parent resource, a second field for a list of constraints that have meaning based on their presence or absence, and a third field for a list of constraints and their values, each constraint in the list of constraints having meaning based on its value.

20 . The machine-storage medium of claim 16 , wherein:

the type of the child resource is a network; and

the determining, based on the type of the child resource, of the set of candidate parent resources comprises determining a set of realms.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2026
From: CONFLUENT, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 075569/0163 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: SNYDER, THOMAS GEORGE, III; JIAO, DEYU; RAGHAVAN, PRACHETAA; YAGATY, AJIT; HOOVER, ROGER; LAMOTTE, DANIEL RAYMOND
To: CONFLUENT, INC.
Reel/Frame 070275/0724 →
References Cited (13)
US 20060173999A1 · Rider · 2006 [cited by examiner]
US 20150178107A1 · Gummaraju · 2015 [cited by examiner]
US 20190138654A1 · Arora · 2019 [cited by examiner]
US 20190222655A1 · Ko · 2019 [cited by examiner]
CN 117952582A · 2024 [cited by examiner]
EP 3292468B1 · 2020 [cited by examiner]
EP 3786860A1 · 2021 [cited by examiner]
JP 2018514839A · 2018 [cited by examiner]
KR 20190094070A · 2019 [cited by examiner]
WO WO02061535A2 · 2002 [cited by examiner]
WO WO2017191489A1 · 2017 [cited by examiner]
WO WO2023008080A1 · 2023 [cited by examiner]
WO WO2024227166A1 · 2024 [cited by examiner]