SYSTEM AND METHOD FOR MANAGING INTERACTIONS BETWEEN USERS OF CLIENT APPLICATIONS

BR112025018709A2Pending Publication Date: 2026-09-08
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
BR112025018709
Authority / Receiving Office
BR · BR
Patent Type
Applications
Publication Date
2026-09-08

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1 / 80 “SYSTEM AND METHOD FOR MANAGING INTERACTIONS BETWEEN USERS OF CLIENT APPLICATIONS” CROSS-REFERENCE TO RELATED REQUESTS

[001] This application claims the benefit of a Patent Application U.S. Provisional Patent Application No. 63 / 490,634, filed March 16, 2023. The contents of U.S. Provisional Patent Application No. 63 / 490,634 are incorporated herein by reference in their entirety. BACKGROUND OF THE INVENTION

[002] Client application users can engage or interact with other users of these client applications in various ways. For example, users can compete against other users in client applications to win prizes or other achievements. One of the factors that can affect the user experience in a client application is the quality of the opponent against whom the user is competing or interacting. A large disparity between opponents, such as in their respective skill or competence levels, can negatively affect each user's experience in the client application. For example, if a beginner is paired with an expert in a competition, neither the beginner nor the expert may find the competition interesting or even fair, as the beginner may become frustrated by having little or no chance of winning, while the expert may become frustrated by competing against an opponent who offers little or no challenge.Another factor that can affect the user experience in a client application is the time it takes to find an opponent. Longer wait times can frustrate users, which can lead to customer loss. SUMMARY OF THE INVENTION

[003] The present invention relates to a system and method for Petition 870250078581, dated 03 / 09 / 2025, page 6 / 108 2 / 80 Manage interactions between users of client applications. According to the present invention, users of client applications can be automatically matched with other users of those client applications, for example, to compete with each other or to interact or engage with each other within the client application. The present invention can promote fair competition and other appropriate interactions in client applications by matching users with similar skills, abilities, and / or other characteristics. The present invention can match users more quickly by allowing them to simultaneously queue for multiple models with various client application interaction modes.

[004] In one aspect, a first request from a first client device running a client application to initiate an interactive electronic session in the client application with one or more additional client devices may be received by at least one data processor. In some aspects, the first request may be based on a first plurality of interaction models associated with the first client device. In some aspects, the first plurality of interaction models may be associated with a corresponding plurality of actors. In some aspects, each actor in the respective plurality of actors may be independent of the other actors in the respective plurality of actors. In one aspect, a second request from a second client device to initiate the interactive electronic session in the client application with one or more additional client devices may be received by at least one data processor.In some respects, the second request may be based on a second plurality of interaction models associated with the second client device. In some respects, the second plurality of interaction models may be associated with a plurality of additional actors. In some respects, each actor of the respec. Petition 870250078581, dated 03 / 09 / 2025, page 7 / 108 3 / 80 The plurality of additional actors can be independent of the other actors in the respective plurality of additional actors. In one aspect, the electronic interactive session between the first client device and the second client device can be determined by at least one data processor based on the identification of a pairing between one of the first several interaction models and one of the second several interaction models selected on the second client device. In some aspects, the identification of the pairing based on a simultaneous processing model allows scaling to a plurality of servers, independently of any architectural modification on any of the servers in the plurality.In another aspect, a client application server from a set of pre-instantiated client application servers may be allocated by at least one data processor for use with the client application during the interactive electronic session. In another aspect, the interactive electronic session between the first client device and the second client device in the client application may be provided by at least one data processor.

[005] In some respects, the first client device can be queued simultaneously in each of the first several interaction models, and another pre-instantiated client application server can be added to the set of pre-instantiated client application servers to replace the client application server that can be allocated. In some respects, each of the first interaction models can be associated with a corresponding instance of a pairing plurality of instances, and the second client device can be queued simultaneously in each of the second interaction models. In some respects, the plurality of actors and the plurality of additional actors can include behavior or logic.

[006] In some respects, a first actor of the respective plurali Petition 870250078581, dated 03 / 09 / 2025, page 8 / 108 4 / 80 A plurality of actors may be able to modify a specific state of the first actor. In some respects, the modification may be independent of the other actors in the respective plurality of actors. In some respects, a second actor in the respective additional plurality of actors may be able to make an additional modification of a specific additional state for the second actor. In some respects, the additional modification may be independent of the other actors in the respective additional plurality of actors. In some respects, the client application server that may be allocated may be deallocated at the end of the interactive electronic session. In some respects, the first plurality of interaction models may be selected on the first client device and the second plurality of interaction models may be selected on the second client device.

[007] In another aspect, a system may comprise at least one data processor and a memory that stores instructions which, when executed by at least one data processor, cause at least one data processor to perform various operations. With respect to operations, in some aspects, a first request may be received from a first client device running a client application to initiate an electronic interactive session in the client application with one or more additional client devices. In some aspects, the first request may be based on a first plurality of interaction models associated with the first client device. In some aspects, the first plurality of interaction models may be associated with a corresponding plurality of actors. In some aspects, each actor in the respective plurality of actors may be independent of the other actors in the respective plurality of actors.In one aspect, a second request from a second client device to initiate the interactive electronic session in the client application with one or more devices. Petition 870250078581, dated 03 / 09 / 2025, page 9 / 108 5 / 80 additional clients may be received. In some respects, the second request may be based on a second plurality of interaction models associated with the second client device. In some respects, the second plurality of interaction models may be associated with a respective plurality of additional actors. In some respects, each actor in the respective plurality of additional actors may be independent of the other actors in the respective plurality of additional actors. In one respect, the electronic interactive session between the first client device and the second client device may be determined based on the identification of a pairing between one of the first several interaction models and one of the second several interaction models selected on the second client device.In some respects, identifying pairing based on a concurrent processing model allows scaling to a plurality of servers, regardless of any architectural modifications to any of the servers in the plurality. In another respect, a client application server from a set of pre-instantiated client application servers can be allocated for use with the client application during the electronic interactive session. In yet another respect, the electronic interactive session can be provided between the first client device and the second client device in the client application.

[008] In some respects, the first client device can be queued simultaneously in each of the first several interaction models, and another pre-instantiated client application server is added to the set of pre-instantiated client application servers to replace the allocated client application server. In some respects, each of the first interaction models can be associated with a corresponding instance from a plurality of pairing instances, and the second client device Petition 870250078581, dated 03 / 09 / 2025, page 10 / 108 6 / 80 can be queued simultaneously in each of the second interaction models. In some respects, the plurality of actors and the plurality of additional actors may include behavior or logic.

[009] In some respects, a first actor in the respective plurality of actors may be able to modify a specific state of the first actor. In some respects, the modification may be independent of the other actors in the respective plurality of actors. In some respects, a second actor in the respective additional plurality of actors may be able to make an additional modification of a specific additional state for the second actor. In some respects, the additional modification may be independent of the other actors in the respective additional plurality of actors. In some respects, the first plurality of interaction models may be selected on the first client device, and the second plurality of interaction models may be selected on the second client device.

[010] In another aspect, a non-transient computer program product may store executable instructions that, when executed by at least one data processor that is part of at least one computing system, may implement various operations. In some aspects, with respect to operations, a first request may be received from a first client device running a client application to initiate an electronic interactive session in the client application with one or more additional client devices. In some aspects, the first request may be based on a first plurality of interaction models associated with the first client device. In some aspects, the first plurality of interaction models may be associated with a respective plurality of actors. In some aspects, each actor in the respective plurality of actors may be independent of the other actors in the respective plurality of actors.In one aspect, a second request for. Petition 870250078581, dated 03 / 09 / 2025, page 11 / 108 7 / 80 A second client device may be received to initiate the interactive electronic session in the client application with one or more additional client devices. In some respects, the second request may be based on a second plurality of interaction models associated with the second client device. In some respects, identifying the pairing based on a concurrent processing model allows scaling to a plurality of servers, regardless of any architectural modifications on any of the servers in the plurality. In some respects, the second plurality of interaction models may be associated with a respective plurality of additional actors. In some respects, each actor in the respective plurality of additional actors may be independent of the other actors in the respective plurality of additional actors.In one aspect, the electronic interactive session between the first client device and the second client device can be determined based on identifying a pairing between one of the first several interaction models and one of the second several interaction models selected on the second client device. In another aspect, a client application server from a set of pre-instantiated client application servers can be allocated for use with the client application during the electronic interactive session. In yet another aspect, the electronic interactive session between the first client device and the second client device can be provided in the client application. In some aspects, the first client device can be queued simultaneously in each of the first several interaction models, and each of the first interaction models can be associated with a corresponding instance of a plurality of “pairing” instances.In some respects, another pre-instantiated client application server can be added to the set of pre-instantiated client application servers to replace the server. Petition 870250078581, dated 03 / 09 / 2025, page 12 / 108 8 / 80 client applications that are allocated.

[011] In some respects, the second client device can be queued simultaneously in each of the second multiple interaction models. In some respects, the electronic interactive session between the first client device and the second client device can be determined based on the identification of a pairing between one of the first multiple interaction models and one of the second multiple interaction models. In some respects, the plurality of actors and the plurality of additional actors can include behavior or logic. In some respects, the client application server that can be allocated can be deallocated at the end of the electronic interactive session. In some respects, the first plurality of interaction models can be selected on the first client device and the second plurality of interaction models can be selected on the second client device. BRIEF DESCRIPTION OF THE DRAWINGS

[012] The embodiments described above will be understood in more detail from the detailed description below, together with the attached drawings. The drawings are not intended to be drawn to scale. For clarity, not all components may be identified in all drawings. In the drawings:

[013] FIGURE 1 is a block diagram illustrating an example of a system for managing interactions between users of client applications;

[014] FIGURE 2 is a block diagram that illustrates an actor design pattern for use by a matching mechanism to match users of a client application;

[015] FIGURE 3 is a block diagram illustrating an example of pairing for users of a client application, as performed by the pairing mechanism using patterns of Petition 870250078581, dated 03 / 09 / 2025, page 13 / 108 9 / 80 actor project;

[016] FIGURE 4 is a flowchart of an example method for managing interactions between users of client applications; and

[017] FIGURE 5 is a block diagram of an example of a computing device that can perform one or more of the operations described herein, according to the present embodiments. DESCRIPTION OF THE INVENTION

[018] Some exemplary embodiments will now be described to provide a general understanding of the principles of structure, function, production, and use of the devices and methods disclosed herein. One or more examples of these embodiments are illustrated in the accompanying drawings. Skilled individuals will understand that the devices and methods specifically described in this document and illustrated in the accompanying drawings are examples of non-limiting embodiments and that the scope of the present invention is defined exclusively by the claims. The features illustrated or described in relation to an exemplary embodiment may be combined with the features of other embodiments. Such modifications and variations are intended to be included within the scope of the present invention.Furthermore, in this disclosure, similarly named components of embodiments generally have similar characteristics and, therefore, within a specific embodiment, each characteristic of each similarly named component is not necessarily described in detail.

[019] The present invention relates to a system and method for managing interactions between users of client applications. According to the present invention, users of client applications (e.g., mobile applications such as mobile games, computer games, or any other suitable type of client application) can be automatically matched with other users of those applications. Petition 870250078581, dated 03 / 09 / 2025, page 14 / 108 10 / 80 clients to compete, interact, or engage with each other within the client application. Embodiments of the present invention can promote fair competition and other appropriate interactions in client applications by matching users with similar skills, abilities, and / or other characteristics. Embodiments of the present invention can match users more quickly by allowing users to simultaneously queue for multiple models with various client application interaction modes.Some implementations of the present invention can improve the efficiency and processing capabilities of computer hardware resources (e.g., computer processing and memory) to enable match identification, supporting and providing substantially faster matching times, particularly for client applications with a large number of users (e.g., hundreds of thousands, millions, tens of millions, etc. of users). For example, some implementations of the present invention can more efficiently handle a large number of queued users and identify matches across multiple models simultaneously. By improving the speed and efficiency of matching for client applications with a large number of users, computer hardware resources can be freed up more quickly and used for other tasks and processes, resulting in a significant improvement in computer resource utilization.

[020] For discussion purposes only and without limitation, this disclosure will refer to mobile games as an example client application to illustrate various aspects of the present invention. However, some implementations of the present invention may be used in and with any suitable type of client application in which one or more users are automatically Petition 870250078581, dated 03 / 09 / 2025, p. 15 / 108 11 / 80 combined with one or more other users to engage or otherwise interact with the goal of achieving some objective or result within the client application. For example, the present invention may generate pairings for a competition or tournament or other appropriate activity or otherwise match users with certain characteristics with other users of the client application who have similar characteristics (for example, to establish chat or social connections within the client application).

[021] FIGURE 1 is a block diagram illustrating an example of system 100 for managing interactions between client application users, according to the embodiments of the disclosure. System 100 may include a server system 102. Server system 102 may provide functionalities for collecting and processing data associated with managing interactions between client application users. Server system 102 may include software components, client application servers, and one or more databases that may be deployed in one or more data centers in, for example, one or more geographic locations. Server system 102 may be cloud-based (e.g., Amazon Web Services, Google Cloud, Microsoft Azure, or another suitable cloud-based infrastructure provider) or consist of dedicated server hardware.The software components of the server system 102 may include a client application activity engine 104, a user details engine 106, a pairing engine 108, a gateway module 110, client application servers 112, and a client application server suite 120. The software components may include subcomponents that may run on the same data processing appliance or on different appliances. The software components and client application servers will be described in more detail. Petition 870250078581, dated 03 / 09 / 2025, page 16 / 108 12 / 80 next.

[022] As illustrated in FIGURE 1, the server system 102 (and any of the software components and client application servers of the server system 102) may be in communication with one or more databases 132. The databases 132 may be cloud-based or reside on one or more physical storage systems. In an alternative embodiment, the server system 102 may include one or more of the databases 132.In some implementations of the present invention, the databases 132 may include any suitable information relating to the software components and the management of the system users 100, such as, for example, characteristics of the users of the client applications and the interactions between these users and the client applications, such as, for example, the user's client application history (e.g., in the context of mobile games, which games were played, number of games won in each game, number of games lost in each game, number of games played for each game, scores in each game, time played for each game, win / loss percentages, etc.), user identification information (e.g., usernames, email addresses, phone numbers, client device identification information, client device IP addresses, etc.).), a history of the user's connections to the server system 102, the user's achievements in client applications, the user's status in client applications, the user's tasks in client applications, the user's interactions with other users (e.g., chats, competitions, match results, etc.), the user's purchases in client applications, the user's deposits / withdrawals in client applications, the user's acquisition or use of virtual items in client applications, other conditions in client applications, and other similar user characteristics and / or information. As. Petition 870250078581, dated 03 / 09 / 2025, page 17 / 108 13 / 80 databases 132 may also include, for example, information relating to client applications implemented using the system 100, such as, for example, a virtual environment for each client application, images, videos, text and / or audio data for each client application, event data corresponding to past, present or future events, client application state data that defines the current state of each client application and other similar data and information.

[023] A software application, such as, for example, a mobile game or other suitable web-based application or client application, may be provided as a client application to the end user in order to enable users to interact with the server system 102. The software application may relate to and / or provide a wide variety of functions and information, including, for example, entertainment (e.g., games, music, videos, etc.), business (e.g., word processing, accounting, spreadsheets, etc.), news, weather forecast, finance, sports, etc. In certain embodiments, the software application may provide a mobile game. The mobile game may be or include, for example, a sports game, an adventure game, a virtual card game, a virtual board game, a puzzle game, a racing game, or any other type of game suitable for mobile.In one embodiment, the mobile game can be an asynchronous, skill-based competitive game, in which users can compete against each other in the mobile game but do not need to play the mobile game at the same time. In an alternative embodiment, the mobile game can be a synchronous, skill-based competitive game, in which users can play the mobile game at the same time and can compete against each other in the mobile game in real time. Other suitable client applications are possible. Petition 870250078581, dated 03 / 09 / 2025, page 18 / 108 14 / 80

[024] The software application or its components can be accessed via a network 144 (e.g., the Internet or another suitable network) by users of client devices. The server system 102 can support and communicate with any suitable number of client devices and any suitable number of client applications. Each client device can be any suitable type of electronic device capable of running the software application and communicating with the server system 102 via the network 144, such as, for example, a smartphone, a tablet, a laptop, a desktop or personal computer, or similar. Other client devices are possible (e.g., smart TVs, smartwatches, game consoles, and other similar computing devices). In an alternative embodiment, the databases 132 or any parts thereof can be stored on one or more client devices.Additionally or alternatively, the software components for the server system 102 (for example, the client application activity engine 104, the user details engine 106, the pairing engine 108) or any parts thereof may reside in or be used to perform operations on one or more client devices.

[025] In one embodiment, the server system 102 may include the client application activity engine 104. The client application activity engine 104 may be configured to provide the services and processing that enable users to participate in matches or otherwise interact with client applications. In other words, the client application activity engine 104 may manage interactions between users of client applications. The client application activity engine 104 may handle the creation of tournament and tournament user objects and add these tournament users to the tournament in databases 132, which occurs from Petition 870250078581, dated 03 / 09 / 2025, page 19 / 108 15 / 80 because both users confirm participation in the tournament after being paired. The client application activity mechanism 104 can also verify if the user is authorized to participate in the tournament, for example, by determining if the user is already in a matchmaking queue, if the user is in a paid entry location, if the user has enough money to participate in a paid entry competition, and so on. The client application activity mechanism 104 can also pass relevant information to the matchmaking mechanism 108, such as user ratings, which models should be queued, and similar information.

[026] In one embodiment, the server system 102 may include the user details mechanism 106 in communication with the client application activity mechanism 104. The user details mechanism 106 may be configured to provide the services of managing and retrieving user-related information (e.g., from databases 132). The user details mechanism 106 may retrieve account information from the client application for users, which may include, for example, user ratings, account balances, and the like, which may be passed to the client application activity mechanism 104.Thus, in some implementations of the present invention, the pairing mechanism 108 would not need to consult any of this user information, since the user information can be obtained or collected by the user details mechanism 106, passed to the client application activity mechanism 104, which can pass the user information to the pairing mechanism 108.

[027] In one embodiment, the server system 102 may include the pairing mechanism 108 in communication with the client application activity mechanism 104 and the user details mechanism 106. The pairing mechanism 108 may be configured Petition 870250078581, dated 03 / 09 / 2025, page 20 / 108 16 / 80 to perform the pairing services between two or more users so that they can interact electronically with each other in the client application. Some implementations of the present invention can be used in and with any suitable type of asynchronous or synchronous client application. In one embodiment, the client application can be an asynchronous mobile game. In an asynchronous mobile game, users do not need to play at the same time. For example, in an asynchronous mobile game, a first user may request to participate in a competition or tournament, which can initiate the user pairing techniques of some implementations of the present invention. The first user can participate in the competition or tournament while some implementations of the present invention search for a suitable match for the first user.Once a match is found, the second identified user can join the competition or tournament (if they haven't already, as the first user can join the competition or tournament after the second user). In contrast, in a synchronous mobile game, users are required to play against each other at the same time, as they compete in real time (for example, a game of pool or similar). A synchronous mobile game should not begin until user pairing is complete. Consequently, synchronous client applications may require pairing to be completed—and usually completed more quickly—before users can interact with each other in the client application.

[028] In one embodiment, the 108 pairing mechanism can be used for pairing in synchronous client applications. For discussion purposes only and without limitation, the 108 pairing mechanism can be used for synchronous mobile games, although pairing in any suitable type of synchronous or asynchronous client application can be supported by the pairing mechanism. Petition 870250078581, dated 03 / 09 / 2025, page 21 / 108 17 / 80 108. In the example of synchronous mobile games, the matchmaking mechanism 108 can use a fast matchmaking technique that allows users to queue and select one or more templates in which each user is interested in playing. A template can be a competition or a tournament. A template can be composed of template options. The template options can be characteristics of the competition or tournament that users wish to play in the synchronous mobile game, such as, for example, the type of competition (e.g., paid entry versus unpaid entry), the value of a competition with paid entry (e.g., $5, $10, $20, etc.), the value of a competition with unpaid entry (e.g., 5 virtual chips, 10 virtual chips, 20 virtual chips, etc.), accumulated prize pool, competition mode rules (e.g., $5 8-ball mode versus $5 shot mode in a pool game, etc.) or similar.

[029] The 108 matching mechanism can allow users to queue for multiple models simultaneously or substantially simultaneously, which can enable significantly faster matching times. The 108 matching mechanism can utilize a suitable expansion technique to determine the speed and order in which users are queued (i.e., enqueued) for each model, as discussed in more detail below. In one embodiment, when a user selects multiple models, they can be enqueued for each model in descending order, for example, from highest value to lowest value (e.g., as determined by the premium, rather than the subscription fee). For example, the 108 matching mechanism might start with the highest-value paid entry model, then loop through all paid entry models in descending order of value, followed by all non-paid entry models in descending order of value.For illustrative and non-limiting purposes, one. Petition 870250078581, dated 03 / 09 / 2025, page 22 / 108 In the 18 / 80 model, the user can select the following templates: a paid entry competition of $5, a paid entry competition of $20, a free entry competition of 5 virtual chips, and a free entry competition of 20 virtual chips, where each of the values ​​can represent prize values ​​(although, in an alternative embodiment, the values ​​could represent entry fees). In this example, the user can be queued in the following order: the paid entry competition of $20, then the paid entry competition of $5, then the no-entry competition with 20 virtual chips, and finally, the no-entry competition with 5 virtual chips. As another example, a user can select templates for two paid entry competitions of $20, but with different competition modes (for example, one for special shots and another for 8-ball in a mobile pool game).In this implementation, each competition mode can have an associated priority, which can be used to break ties between models of equal value. In the present illustration for a billiards game, a special shot mode might have a higher priority, for example, one, while the 8-ball mode might have a lower priority, for example, two. Other priority values ​​are possible. Consequently, the model with the highest priority (for example, the special shot mode with priority one) could be placed in the queue first, the model with the second highest priority (for example, the 8-ball mode with priority two) could be placed in the queue second, and so on.This prioritization can also be used to determine the order in which competition modes can be displayed on the user's client device screen (for example, the competition mode with the highest priority can be displayed at the top or first, the competition mode with the second highest priority can be displayed below the highest priority or second). Petition 870250078581, dated 03 / 09 / 2025, page 23 / 108 19 / 80 second place, etc.). When the user is not matched to the first model within a given period of time, they may be placed in the queue for the second model (for example, while still remaining in the queue for the first model) and so on until they are matched.

[030] In one embodiment, the pairing supported by the 108 pairing mechanism can be based on an actor design pattern. For example, each model can have or be associated with an actor (e.g., one actor per model). An actor design pattern is a model of simultaneous computation and / or processing that treats actors as the primitive unit of computation. An actor defines some behavior or logic to be executed and uses a suitable communication method to instruct other actors to execute its behavior. The behaviors defined in an actor are asynchronous, so actors do not wait for a response. Instead, actors continue processing and receive a response at some later time. All communication is done through message passing, where messages are handled one at a time, in the order they are received.In response to a received message, an actor can perform an appropriate calculation or execute suitable logic, such as making local decisions, creating more actors, sending more messages, and determining how to respond to the next received message. Actors can modify their own private state, but can only affect each other indirectly through messages. Actors are isolated from each other and do not share memory—storage is “non-sharing,” meaning that private data is isolated and can only be accessed by the owning actor. These properties allow for massive and efficient scalability of peer pairing, according to some implementations of the present invention. For example, actors can support linear scaling. Petition 870250078581, dated 03 / 09 / 2025, page 24 / 108 20 / 80 a plurality of servers (e.g., hundreds and thousands of servers) without requiring architecture redesign. Server architecture refers to various server-specific characteristics, for example, the way one or more subcomponents of a server and / or server system are connected, any protocols or processes that are implemented and initiated to communicate data into and out of the server and / or server system, the way resources (e.g., memory) are allocated and shared within the server and / or server system, etc. The actors, as described in this disclosure, can support linear scaling to a plurality of servers, which may include at least some of the server-specific characteristics described above, without involving redesign or modification of at least some of these server-specific characteristics.Actors can also support location transparency to facilitate addressing both local and non-local computing units, so that an actor can reside on any server without needing to redesign the architecture. Actors can also support non-blocking data handling, eliminating the need for lock-based synchronization. Due to the one-message-at-a-time rule, there is no need to lock data, therefore race conditions are avoided. An actor design pattern can be more efficient in handling a large number of queued users and attempting to identify matches across multiple models simultaneously. Other design patterns for the 108 matching mechanism are possible.

[031] FIGURE 2 is a block diagram illustrating an actor design pattern 200 for use by the matching mechanism 108 to match users of a client application, according to the realizations of the disclosure. A load balancer ade Petition 870250078581, dated 03 / 09 / 2025, page 25 / 108 21 / 80 quado 202 in the server system 102 (for example, in the pairing mechanism 108) can allocate pairing between different instances or processes of the pairing mechanism 108, such as a first instance of the pairing mechanism 204, a second instance of the pairing mechanism 206, and a third instance of the pairing mechanism 208, although any suitable number of instances of the pairing mechanism can be instantiated and managed. In some implementations of the present invention, there may be one actor per client application model, which may be called a Model Actor. In other words, each instance of the pairing mechanism can interact with each Model Actor for each client application model of any suitable number of client application models.In one embodiment, the matching queues can be ordered dictionaries in the Model Actor's memory, and a Model Actor can search its queues when the queue is attached with users to search. For example, the first instance of the matching mechanism 204 can use the first Model Actor 210 for the first model of the first client application to perform the matching with the three users 218. The second instance of the matching mechanism 206 can use the second Model Actor 212 for the second model of the first client application to perform the matching with the single user 220. The third instance of the matching mechanism 208 can use the first Model Actor 214 for the first model of the second client application to perform the matching with the three users 222 and use the second Model Actor 216 for the second model of the second client application to perform the matching with the three users 224.Users can insert multiple models simultaneously, and the respective Model Actors can perform pairing simultaneously or in parallel with each other. Using one client actor per client application model may be supported. Petition 870250078581, dated 03 / 09 / 2025, page 26 / 108 22 / 80's linear scalability and in-memory matching does not require memory locking or duplicate work and can be event-driven. In other words, by using Model Actors, the 108 matching mechanism can be scaled to support simultaneous matching of a large number of users, such as hundreds of thousands, millions, tens of millions, or more users.

[032] According to one embodiment, once the user is ready to be matched (e.g., by pressing a suitable virtual button displayed in the graphical interface of the client application running on the user's client device), the matching mechanism 108 can begin analyzing the collection of all selected models and advancing through the models, for example, in descending order of value or other characteristic (e.g., descending order of prize values ​​for the paid entry competition, followed by descending order of prize values ​​for the non-paid entry competition), regardless of the client application mode. If there is a tie in value between two competition modes with selected models, the model with the highest priority (e.g., model with priority 1, then model with priority 2, then model with priority 3, and so on) can be queued first.For illustrative and non-limiting purposes, the following models can be selected by a user for a billiards game: $20 8-ball (priority 1 in competition mode); $20 special shot (priority 2 in competition mode); $5 8-ball (priority 1 in competition mode); $5 special shot (priority 2 in competition mode); 1 virtual special shot chip (priority 1 in competition mode). The queue order for finding a match can be as follows: $20 8-ball; $20 special shot; $5 8-ball; $5 special shot; and 1 virtual special shot chip. The 108 matching mechanism can proceed through each selected model until... Petition 870250078581, dated 03 / 09 / 2025, page 27 / 108 23 / 80 a suitable match is found. In this embodiment, the user may remain in the queue for one or more previous models while being placed in the queue for one or more additional models, in order to maximize the ability of the 108 matching mechanism to identify a match. Other ways of traversing the models in different orders and priorities by the 108 matching mechanism to identify matches are possible.

[033] In one embodiment, if the pairing mechanism If the 108 pairing mechanism is unable to identify a match based on the selected models, it may display a message to the user prompting them to play one or more different models, such as alternative synchronous mobile game models and / or asynchronous mobile game models. The 108 pairing mechanism may also display a suitable notification in the user interface asking the user if they wish to pair with a different model. For example, such a request might occur when the 108 pairing mechanism does not identify any matches for the user with their selected models (e.g., no matches identified within a predetermined time period), but identifies a second user with a different selected model (in the same client application, but in the same client application mode or in a different mode).In one embodiment, the 108 matching mechanism can be configured to allow admissible alternatives in order to prevent certain alternatives from being offered to one or more users (e.g., no indentation of bot templates, no asynchronous indentation for synchronous templates and vice versa, and the like). Furthermore, or alternatively, the 108 matching mechanism can prompt the user to add templates to their selection to increase the chances of a successful match (e.g., add templates to Petition 870250078581, dated 03 / 09 / 2025, p. 28 / 108). 24 / 80 (including popular models or models with higher user liquidity).

[034] In one embodiment, the 108 matching mechanism can dynamically add or remove models when various user liquidity thresholds are reached. For example, a user might be provided with an initial set of a plurality of models. The 108 matching mechanism can obtain and maintain in real time the number of users available for matching for each model, the average waiting time for matching, matching success rates, total queues, and other similar information to determine the user's liquidity in real time. Each model can have a user liquidity threshold associated with it.For discussion purposes and without limitation, the user liquidity limit may indicate, for example, the minimum number of users that the 108 matchmaking mechanism needs to generate a successful match for that model, although the user liquidity limit may be based on other suitable factors or a combination of factors (e.g., available users, average wait time, etc.). The user liquidity limit may be the same across models or vary between them. For example, a model with a lower paid entry fee (e.g., $1.80) may have a higher user liquidity limit, since there are generally more users available and the average wait time for matchmaking in tournaments with lower paid entry fees is shorter.However, a model with a higher paid entry fee (e.g., $120) may have a lower user liquidity threshold because there are generally fewer users available and the average wait time for matchmaking in tournaments with higher paid entry fees is longer. In a set of models, the 108 matchmaking mechanism may remove a model from the set displayed or presented to the user when the user's liquidity falls below the threshold. Petition 870250078581, dated 03 / 09 / 2025, page 29 / 108 25 / 80 user liquidity limit for this model. The 108 matching mechanism can add a model to the set displayed or presented to the user when the user's liquidity exceeds the user liquidity limit for that model. With this dynamic model scaling, the user can receive (continuously or at predetermined intervals) an updated set of models that can maximize the chances of a successful match. Additionally, or alternatively, each model can be associated with one or more hours or time intervals, so that the 108 matching mechanism can add or remove specific models from each set for the user at predetermined times or within predetermined time intervals.

[035] In one embodiment, the 108 matching mechanism can dynamically modify the user's matching for each or any of the models based on the user's liquidity thresholds. For example, as the user's liquidity increases above a predetermined threshold (or is within a predetermined threshold range), the 108 matching mechanism can provide a more precise matching for each or any of the models, since there may be more users available for matching. Conversely, as the user's liquidity decreases below the predetermined threshold (or falls outside the predetermined range), the 108 matching mechanism can provide a wider matching for each or any of the models, since there may be fewer users available for matching.The 108 matching mechanism can provide more restrictive or broader matches by appropriately updating the parameters used, for example, in the Elo expansion, so that it may take more or less time to expand to a wider or more restrictive maximum Elo difference range between two users, where the matching mechanism... Petition 870250078581, dated 03 / 09 / 2025, page 30 / 108 26 / 80 matching 108 would allow them to match with each other. In this way, the 108 matching mechanism can respond to user liquidity in real time to maximize the probability of successful matching between users. Additionally or alternatively, the 108 matching mechanism can dynamically modify user matching for each or any models based on the time of day or other suitable parameters, so that the 108 matching mechanism can modify user matching at predetermined times or within predetermined time intervals. Furthermore, or alternatively, the 108 matching mechanism can utilize suitable machine learning / artificial intelligence techniques for user matching. For example, a machine learning model can be trained based on user liquidity data for each model or any model to be optimized, for example, the time to a successful match.The machine learning model can then be used to dynamically match users to each or any of the models. The machine learning model can be updated or adapted as user liquidity changes over time.

[036] In one embodiment, to improve or increase user liquidity for one or more models, the 108 pairing mechanism may cause a modal notification or other suitable notification to be displayed in the client application user interface to prompt users to play certain synchronous client applications or certain modes in those synchronous client applications. Additionally, or alternatively, the 108 pairing mechanism may display or cause a chat message to be displayed in a chat user interface to prompt users to run certain synchronous client applications or determine Petition 870250078581, dated 03 / 09 / 2025, page 31 / 108 27 / 80 of the modes in these synchronous client applications. These prompts may be displayed automatically by instruction of the 108 pairing mechanism when the user's liquidity levels (either generally for the client application or for one or more models) fall below the appropriate user liquidity thresholds. Prompts to the user may continue until the user's liquidity levels are greater than or equal to the user liquidity thresholds, for a predetermined or similar time interval. Additionally, or alternatively, the 108 pairing mechanism may cause such prompts to be displayed in the client application at predetermined times or within predetermined time intervals.

[037] In some implementations of the present invention, the speed at which the user is queued in each model can be determined by a suitable expansion technique. In one embodiment, the expansion technique used by the matching mechanism 108 can be a linear algorithm, as in Equation (1): Y = mX + b (1)

[038] In Equation (1), the variable Y can be the total time since entering the first row, the variable X can be the expansion index starting at 0, the constant b can be a first time interval (e.g., in seconds) during which the 108 matching mechanism waits before entering the second selected model, and the constant m can be a second time interval (e.g., in seconds) during which the 108 matching mechanism waits before moving from the second selected model to the third selected model, from the third selected model to the fourth selected model, and so on.

[039] According to the embodiments, the variable X can represent how many additional queues were inserted from the first queue. When X=0, the user is in a queue and waits Y(0) until entering the Petition 870250078581, dated 03 / 09 / 2025, page 32 / 108 28 / 80 next queue. When X=1, the user is in two queues in total and waits Y(1) time to enter the third queue. The time Y(1) - Y(0) passes between entering the second and third queues. For illustrative purposes and without limitation, with m=1 and b=1 (i.e., Y=x+1), a user can select the models discussed above. For illustrative purposes and not limiting, a user can select the following models: a competition with a paid entry fee of $5, a competition with a paid entry fee of $20, a competition with a free entry fee of 5 virtual chips, and a competition with a free entry fee of 20 virtual chips. In this example, the user can be placed in the queue in the following order: the competition with a paid entry fee of $20, then the competition with a paid entry fee of $5, then the competition without a paid entry fee with 20 virtual chips, and finally, the competition without a paid entry fee with 5 virtual chips.Using Equation (1) for the 108 pairing mechanism, the user immediately enters a queue for the $20 paid entry competition. After one second (Y=1*0+1=1), the user enters a queue for the $5 paid entry competition. After an additional second (two seconds in total, i.e., Y=1*1+1=2), the user enters a queue for the 20 virtual chip entry competition with no paid entry. After an additional second (three seconds in total, i.e., Y=1*2+1=3), the user enters a queue for the 5 virtual chip entry competition with no paid entry. According to an alternative embodiment, both m and b can be set to zero to allow the user to enter all queues simultaneously.

[040] In another embodiment, the expansion technique used by the 108 matching mechanism can be a logarithmic algorithm, such as Equation (2): Y = ln(mX + b) + c (2)

[041] In Equation (2), the definitions of the variables and parameters Petition 870250078581, dated 03 / 09 / 2025, page 33 / 108 29 / 80 are similar to those discussed in relation to Equation (1), where the constant c can be a third time interval (e.g., in seconds) to control how quickly the logarithmic algorithm expands to subsequent models. Thus, the logarithmic algorithm of Equation (2) can expand slowly to the second model and then expand rapidly to all other models. For illustrative and non-limiting purposes, let m=1, b=1 and c=5 (i.e., Y=ln(X+1) + 5) and a user selects the models discussed above. The user is immediately queued for the first model. The user is queued for the second model after Y = ln(1*0 +1) + 5 = 5 seconds. The user then enters the third queue after Y = ln(1*1+1) + 5 = ~5.7 seconds. The user enters the fourth row after Y=ln(2* 1+1) + 5 = ~6.1 seconds.

[042] In another embodiment, the expansion technique used by the 108 matching mechanism can be an exponential algorithm, as in Equation (3): Y = eA(mX + b) + c (3)

[043] In Equation (3), the definitions of the variables and parameters are similar to those discussed in relation to Equation (2). Thus, the exponential algorithm can expand rapidly to the second and then slowly to all other models. For illustrative and non-limiting purposes, let m=1, b=1 and c=5 (i.e., Y=eA(X+1) + 5) and a user selects the models discussed above. The user is immediately placed in the queue for the first model. The user is placed in the queue for the second model after Y = e\(1*0 +1) + 5 = ~7.7 seconds. The user then enters the third queue after Y = eA(1*1+1) + 5 = ~12.4 seconds. The user enters the fourth queue after Y=eA (2*1+1) + 5 = ~25.1 seconds.

[044] In some embodiments, the constants m, bec can be customized and may differ between each expansion technique. Petition 870250078581, dated 03 / 09 / 2025, page 34 / 108 30 / 80 Expansion techniques can be defined, for example, by application per client, by model group, specific to an individual model ID, at the input type level (e.g., paid input or unpaid input), or similar. For example, one expansion technique might be used for a first client application, while another expansion technique might be used for a second client application, and so on. According to one embodiment, different expansion techniques can be applied by configuring the 108 matching mechanism for a client application at different times of day. For example, the linear expansion algorithm might be used from 6 AM to 6 PM, the logarithmic expansion algorithm from 6 PM to midnight, and the exponential algorithm from midnight to 6 AM. Other expansion techniques at other orders and epochs are possible.Furthermore, or alternatively, the variables and parameters for each of the expansion techniques can be modified based on, for example, the time of day and / or the date. For example, the 108 matching mechanism can modify the variables and parameters to provide more accurate matching during peak hours (and / or during holidays or weekends, when more users may be available for matching), while the 108 matching mechanism can modify the variables and parameters to provide broader matching during off-peak hours (and / or non-holiday or weekdays, when fewer users may be available for matching).

[045] According to one embodiment, the 108 pairing mechanism can additionally or alternatively utilize an Elo classification expansion technique for synchronous client applications. Furthermore, or alternatively, the Elo classification expansion technique can be used for asynchronous client applications. This expansion technique can determine how quickly the range... Petition 870250078581, dated 03 / 09 / 2025, page 35 / 108 31 / 80 of a user's possible ranking for matching expands. In one embodiment, the 108 matching mechanism can use an exponential ranking expansion algorithm, as in Equation (4): Y = min(a + b*eA(X / c), d) (4)

[046] In equation (4), the variable Y is the ranking difference, the variable X is the waiting time before pairing, the constant a is the minimum ranking for instant pairing, the constants b and c are scaling coefficients, and the constant d is the maximum ranking difference. In one embodiment, the values ​​of a, b, c and d can be adjusted based on, for example, a model or model type (e.g., paid entry competitions versus free entry competitions). In one embodiment, this expansion technique can be used by the 108 pairing mechanism for event-based expansion. For example, when a user enters a queue, the 108 pairing mechanism can iterate through all users in the queue and schedule “messages” to be paired within a predetermined number of seconds based on the ranking difference.If a user has already been paired with another user at the time their message is processed, no further pairing is necessary. In this embodiment, since the pairing is event-based, when a user enters the queue, the pairing performed by the 108 pairing mechanism must be reciprocal in terms of rating difference. For illustrative and non-limiting purposes, suppose a first user has an Elo rating of 1200. The first user requests a synchronous match and enters a queue. In the queue are the following three users: a second user with an Elo rating of 400; a third user with an Elo rating of 1400; and a fourth user with an Elo rating of 1500. In this illustration, let a = 200. Petition 870250078581, dated 03 / 09 / 2025, page 36 / 108 32 / 80 b=2, c=2 ed=800 for Equation (4). Therefore, the 108 matching mechanism can immediately pair the first user with any user below a rating difference of 200, which would expand to 800 points in 10 seconds (and can be limited to 800 if d=800, otherwise d would need to be modified). In the present illustration, the 108 matching mechanism can immediately pair the first user with the third user because the rating difference between them is 200 and a=200, while it would take approximately 7 seconds for the 108 matching mechanism to associate the first user with the fourth user (with a rating difference of 300) and approximately 12 seconds to associate the first user with the second user (with a rating difference of 800).

[047] Additional or alternative expansion techniques may be used by the 108 matching mechanism. For example, the 108 matching mechanism may use a variant of the logarithmic algorithm, as in Equation (5): Y = c * log((rating_delta - m) / b) (5)

[048] In Equation (5), the definitions of the variables and parameters are similar to those discussed in relation to the previous equations, where rating_delta is the rating difference. Other expansion algorithms are possible.

[049] In one embodiment, the 108 matching mechanism can dynamically adjust the expansion algorithm parameters. For example, the expansion algorithm parameters can be dynamically adjusted based on the user's real-time liquidity. A predetermined user liquidity threshold can be used by the 108 matching mechanism to determine when the expansion algorithm parameters can be adjusted. For example, when the user's liquidity is below the user liquidity threshold Petition 870250078581, dated 03 / 09 / 2025, page 37 / 108 33 / 80 predetermined river, the 108 matching mechanism may adjust the expansion algorithm parameters to provide a wider match (e.g., increasing the maximum ranking difference), as there may be fewer users available for matching. Alternatively, when user liquidity is above the predetermined user liquidity threshold, the 108 matching mechanism may adjust the expansion algorithm parameters to provide a more stringent match (e.g., decreasing the maximum ranking difference), as there may be more users available for matching. Furthermore, or alternatively, the 108 matching mechanism may modify the expansion algorithm parameters based on, for example, the time of day and / or the date.For example, the 108 matching mechanism can modify the expansion algorithm parameters to provide more stringent matching during peak hours (and / or holidays or weekends), while the 108 matching mechanism can modify the expansion algorithm parameters to provide broader matching during off-peak hours (and / or non-holiday or weekdays).

[050] Additionally or alternatively, the 108 matching mechanism can adjust the expansion algorithm parameters so that Elo rankings can expand asymmetrically. In this embodiment, the 108 matching mechanism can use different upward and downward Elo expansions to expand faster in one direction than the other. Consequently, the 108 matching mechanism can use different expansion algorithm parameters for upward and downward expansion. For illustrative and non-limiting purposes, the downward expansion algorithm parameters may provide faster expansion than the upward expansion algorithm parameters. In Petition 870250078581, dated 03 / 09 / 2025, page 38 / 108 In the 34 / 80 illustration, a first available opponent might be 100 Elo below a user, while a second available opponent might be 75 Elo above the user. In the present illustration, a match with the first available opponent can be made by the 108 matchmaking mechanism due to asymmetric expansion, since downward expansion is faster even if the first available opponent is further away from the user. This asymmetric matchmaking can be based on groups or cohorts, so that users can be matched with opponents in the same group or cohort of users. If no matches are found within the group or cohort within a predetermined time period, the 108 matchmaking mechanism can expand the matchmaking to opponents in different groups.

[051] In some implementations of the present invention, the 108 matching mechanism may use the fast matching technique in conjunction with the Elo classification expansion technique to perform the matching, for example, in synchronous client applications, although the fast matching technique in conjunction with the Elo classification expansion technique may be used for asynchronous client applications. As discussed earlier, the 108 matching mechanism may allow users to queue for multiple models at once or simultaneously (or nearly simultaneously). When a user selects multiple models, they may be queued for each model, for example, in descending order (e.g., by value). As the user joins each queue, the 108 matching mechanism may use the Elo classification expansion technique to match that user with other users waiting in the respective queue.For illustrative and non-limiting purposes, a user may be queued by the 108 matchmaking mechanism in the following order: a $20 paid entry competition, then... Petition 870250078581, dated 03 / 09 / 2025, page 39 / 108 35 / 80 a paid entry competition of $5, then a no-entry competition with 20 virtual chips, and finally, a no-entry competition with 5 virtual chips. The user would immediately queue for the paid entry competition of $20, which initiates the Elo rating expansion technique for a paid entry competition of $20. After one second (e.g., using the linear algorithm of Equation (1) with m=1 and b=1), the user can queue for the paid entry competition of $5, which initiates the Elo rating expansion technique for a paid entry competition of $5. After an additional second (2 seconds in total), the user can queue for the 20 virtual chip competition without payment, which initiates the Elo rating expansion technique for a 20 virtual chip competition.After another second (three seconds in total), the user can enter a queue for the free entry competition of 5 virtual chips, which initiates the Elo rating expansion technique for a 5 virtual chip competition. As discussed earlier, the user can remain in the queue for a previous model while being placed in the queue for one or more additional models in order to maximize the ability of the 108 matching engine to identify a match. However, the 108 matching engine may use one or both of the quick matching and Elo rating expansion techniques, individually or in combination, to obtain a preferential match in the shortest possible time.

[052] In some implementations of the present invention, the matching mechanism 108 may classify or organize users into cohorts, groups, or categories based on any suitable characteristics of those users. For illustrative and non-limiting purposes in the context of synchronous mobile games, such user characteristics may include, for example, skill rating, total number Petition 870250078581, dated 03 / 09 / 2025, page 40 / 108 36 / 80 of games played, total number of games won, number of synchronous games played, number of synchronous games won, and similar metrics, or any combination thereof. Other user characteristics and other types of client applications are possible. For example, users who are "new" and have played fewer than a predetermined number of games can be classified into a first group. Other "experienced" users can be classified into groups according to, for example, their skill rating in mobile gaming, where each group can have a corresponding skill range. Additionally, or alternatively, experienced users can be classified into groups according to the number of games played, the number of games won, where each category can have a corresponding number of games played, number of games won, etc., or any combination thereof. Other characteristics for buckets are possible.Any suitable number of such compartments can be used by the matching mechanism 108, and each compartment can be associated with any appropriate feature of the client application. According to one embodiment of the present invention, users can be matched with other users in the same group. However, in some implementations of the present invention, users in one group associated with a first feature can be matched with users in another group associated with a second feature if, for example, the second feature is within a predetermined difference or range of the first feature. Furthermore, or alternatively, matching within the user group can continue for a predetermined period of time before matching expands to other user groups.In other words, in intragroup matching, the matching population for a user can be limited to the user's group for a predetermined initial period of time. Petition 870250078581, dated 03 / 09 / 2025, page 41 / 108 37 / 80 (e.g., seconds). If the user is not found within this period, the match can be expanded to include users from other groups (i.e., cross-group matching), such as those who have exceeded their respective time intervals. Furthermore, or alternatively, each group can be associated with different parameters for the Elo ranking expansion technique used by the 108 matching mechanism. In other words, the 108 matching mechanism can assign or associate different variables and parameters used for the Elo ranking expansion technique to each or any group, and each set of variables and parameters can be modified appropriately by the 108 matching mechanism, such as dynamically (e.g., based on the user's real-time liquidity), based on the time of day, or similar.

[053] As illustrated in FIGURE 1, the server system 102 may include a gateway module 110. The gateway module 110 may be configured to support communications between the server system 102 and one or more client devices 134. The gateway module 110 may support any suitable type of communication protocol to transmit data and information to and from the server system 102, through the network 144, and to and from one or more client devices 134, respectively. For example, the gateway module 110 may support standard Internet protocols (TCP / IP), may comprise a suitable data and signaling channel, such as a gRPC gateway or similar, support OpenGL or other suitable technologies, or comprise any other appropriate form of communication channel, whether wired or wireless.In some implementations of the present invention, the gateway module 110 may additionally or alternatively comprise a TURN (Traversal Using Relay NAT) server or similar (for example, a STUN (Session) server). Petition 870250078581, dated 03 / 09 / 2025, page 42 / 108 38 / 80 (Traversal Utilities for NAT) to support video / audio data communication between the server system 102 and client devices 134. Additionally or alternatively, the gateway module 110 may comprise an encoder suitable for encoding video to, for example, h.264 or VP8 for WebRTC or similar. However, other server communication protocols, encoding techniques and / or transmission protocols suitable for use in and with the gateway module 110 are possible.

[054] In one embodiment, the system 100 may include one or more client devices 134 communicating with the server system 102 via the gateway module 110. According to the embodiments, the client device 134 may be any suitable type of device capable of running an appropriate client application through which a user can interact with other users, such as, for example, a smartphone, a tablet, a laptop, a desktop computer, a game console, a smart television, a smartwatch, or any other suitable device. In some embodiments, the server system 102 may support any suitable number of client devices 134.

[055] In one embodiment, client devices 134 may include a client application engine 136 communicating with a display module 142. The client application engine 136 may support the execution of a client application 138 installed on the client device 134. The client application 138 may include a Software Development Kit (SDK) module 140 that may be integrated into the client application 138. The SDK module 140 may provide the features, functionalities, and other capabilities for the client application 138 to support interaction with the server system 102, including pairing, competition management, or other user-to-user interactions and the like. For illustrative and non-limiting purposes, when the application Petition 870250078581, dated 03 / 09 / 2025, page 43 / 108 Client 138 is a single-player, skill-based mobile game. SDK module 140 can enable a developer to integrate a tournament-enabled betting platform into a single-player mobile game in order to convert the single-player mobile game into a competitive mobile eSports game. Display module 142 can support the display of video and / or audio information from client application 138 to the user. In some implementations of the present invention, display module 142 can accept user input (e.g., tactile input) to allow the user to interact with and control client application 138.

[056] In some implementations of the present invention, the 108 pairing mechanism may be a clustered Elixir application or similar that uses, for example, the Horde actor library (or another suitable library) to distribute processes across a cluster of client application servers. The 108 pairing mechanism may also use, for example, Mnesia or similar for configuration storage. Elixir is a functional language that runs on an Erlang virtual machine and can be used to provide low-latency, distributed, and fault-tolerant systems. Horde is a distributed supervisor and ledger that can provide the implementation of an actor model on remote pairing nodes. Mnesia is a distributed database that is natively associated with Erlang and is therefore compatible with Elixir.For example, Mnesia can be used to store search settings (e.g., for the quick match technique and / or the Elo sort expansion technique), a hash ring (discussed in more detail below), pending matches, and other similar information.

[057] In some implementations of the present invention, the server system 102 may include a plurality of client application servers 112 for use by and with the client applications. Petition 870250078581, dated 03 / 09 / 2025, page 44 / 108 40 / 80 executed on the users' client devices 134. The plurality of client application servers 112 may be in communication with one or more of the client application activity mechanisms 104, the user details mechanism 106, and the pairing mechanism 108. Additionally or alternatively, some or all of the client application servers 112 may be remote and in communication with the server system 102. The plurality of client application servers 112 may include any suitable number of client application servers, such as a first client application server 114, a second client application server 116, ..., and an Nth client application server 118, where N may be any appropriate natural number.In one embodiment, each of the several client application servers 112 can be allocated or otherwise assigned to support a client application during or after matching by the matching mechanism 108. In some implementations of the present invention, the plurality of client application servers 112 can be configured as, for example, a hash ring. A hash ring can take the initial bits of the hash value of an item (e.g., a matching ID) and use this information to determine to which node the item should be assigned. For example, the nodes in the hash ring can be divided into fragments, and each fragment can be assigned an integer value in an appropriate key space, which can be the set of integers from 1 to a predetermined number (e.g., 232-l or similar). The distribution of these fragments can be random, but deterministic.The keys can then be mapped to a fragment by converting the key to binary, hashing it with an appropriate hash algorithm (e.g., SHA-256 or similar), converting the hash to an integer in the keyspace, and then locating the fragment to which the next va is assigned. Petition 870250078581, dated 03 / 09 / 2025, page 45 / 108 41 / 80 higher value. If there is no immediately higher value, the smallest whole number can be used, which is how the "ring" can be formed.

[058] In some implementations of the present invention, the hash ring can be managed, wherein the hash ring can be maintained in the internal state of a process maintained, for example, by the 108 pairing mechanism. A hash ring can be static or dynamic. Static hash rings are those in which nodes are provided in advance and can be added / removed manually during execution. Dynamic hash rings can be monitored (for example, by the 108 pairing mechanism, such as using Erlang node monitoring or similar), and nodes in the hash ring can be automatically added or removed based on cluster membership (for example, Erlang cluster membership).Thus, the hash ring can be used to store the available client application servers 112 and ensure that two users with the same pairing ID can connect to the same client application servers 112, evenly distributing the matches across the available client application servers 112. In one embodiment, the pairing mechanism 108 can query the plurality of client application servers 112 periodically (e.g., every 5 seconds, 10 seconds, 30 seconds, or similar) to maintain a list of available client application servers 112.When the SDK modules 140 of the respective client devices 134 of the users are querying the server system 102 to initiate the match, the pairing mechanism 108 can obtain an IP address and port number (or other suitable address information) from the hash ring based, for example, on a hash of the match ID for the two users, in order to ensure that both users are sent and utilize the same client application servers 112 for the match, competition, or tournament in the client application. The server of. Petition 870250078581, dated 03 / 09 / 2025, page 46 / 108 42 / 80 recovered client applications 112 can then be used by both users during startup in the client application 138 running on their respective client devices 134.

[059] Additionally or alternatively, in some implementations of the present invention, the server system 102 may include a set of client application servers 120 for use by and with the client application 138 running on users’ client devices 134. The set of client application servers 120 may be in communication with one or more of the client application activity mechanisms 104, the user details mechanism 106, and the pairing mechanism 108. Furthermore, or alternatively, part or all of the set of client application servers 120 may be remote and in communication with the server system 102. The set of client application servers 120 may include a “warmed” set of client application servers 122. For example, each of the client application servers in the warmed set of client application servers 122 may be pre-allocated and pre-instantiated within the set.By starting the client application servers in the background pool and keeping them in the warmed pool, a client application server can be immediately (or almost immediately) assigned to a match, competition, or tournament upon request, with little or no concomitant delay. The warmed pool of 122 client application servers can include any suitable number of warmed client application servers, such as a first warmed client application server 124, a second warmed client application server 126, and a Mth warmed client application server 128, where M can be any appropriate natural number. Note that M (from the warmed pool of 122 client application servers) and N (from the client application servers 112) can be the same number. Petition 870250078581, dated 03 / 09 / 2025, page 47 / 108 43 / 80 or different.

[060] Once a heated client application server has been assigned and allocated to a match, competition, or tournament, the assigned heated client application server can be immediately (or almost immediately) replaced in the heated client application server pool 122 by another heated client application server that is initialized from a client application server pool repository 130 that is in communication with the heated client application server pool 122. Thus, the replacement client application server can be ready for immediate (or almost immediate) assignment and allocation to another match. In this way, client application servers in the heated client application server pool 122 can be allocated to users in real time.In this disclosure, "real-time" may refer to processing that can occur instantaneously or within a short period of time (e.g., a few seconds), such that there are minimal delays between the time the request is received and the time the request is processed and the response is provided. Computing resources allocated to a client application server for a match, competition, or tournament may be deleted or deallocated immediately (or nearly immediately) once the match, competition, or tournament ends and the client application server is no longer needed for that match, competition, or tournament.In some implementations of the present invention, these freed-up computing resources can be reallocated, for example, by the pairing mechanism 108 to add and warm up another client application server to the warmed-up set of client application servers 122, instead of maintaining resources for an allocated client application server that is no longer needed for a completed match, competition, or tournament. Thus, in. Petition 870250078581, dated 03 / 09 / 2025, page 48 / 108 44 / 80 In one implementation, the pairing mechanism 108 may request the client application server set 120 to allocate a client application server from the heated client application server set 122 in response to a user's request to enter a pairing. The client application server set 120 may return one of the client application servers from the heated client application server set 122, such as an IP address and port number (or other suitable address information) of a heated client application server, to ensure that both users are sent and utilize the same (heated) client application server for the match, competition, or tournament.Simultaneously, the client application server set 120 can activate a replacement client application server from the repository of the client application server set 130 and add it to the heated client application server set 122. The client application server can be allocated per match, competition, or tournament and destroyed or deallocated when the match, competition, or tournament is completed. In some implementations of the present invention, the client application server set 120 can use the Agones open-source platform to deploy, scale, and orchestrate dedicated ephemeral game servers for large-scale multiplayer games. However, other server platforms are possible.

[061] The size of the heated pool of client application servers 122 can be fixed or dynamic. For example, the size of the heated pool of client application servers 122 can be fixed so that a predetermined number of heated client application servers can be maintained in the pool. As client application servers in the heated pool of client application servers 122 are allocated, the pool will be Petition 870250078581, dated 03 / 09 / 2025, page 49 / 108 45 / 80 client application servers 120 can replace the allocated client application server with another heated client application server to maintain the heated pool size of client application servers 122 at (or close to) the predetermined pool size number. The predetermined pool size number may be based, for example, on usage trends or other corresponding and similar historical information. Thus, high utilization (and a greater number of pairings) may have or be associated with a larger predetermined pool size number, while lower utilization (and a smaller number of pairings) may have a smaller predetermined pool size number.

[062] In addition or alternatively, the size of the heated pool of client application servers 122 can be dynamic. In some implementations of the present invention, the pool of client application servers 120, together with, for example, the pairing mechanism 108, can monitor in real time the usage trends of the client applications. For example, as usage trends increase, the pool of client application servers 120, together with, for example, the pairing mechanism 108, can increase the size of the heated pool of client application servers 122 to accommodate the increased usage, so that the allocation of client application servers can continue in real time without additional delays.On the other hand, as usage trends decrease, the set of client application servers 120, in conjunction with, for example, the pairing mechanism 108, can reduce the size of the heated set of client application servers 122 to accommodate the lower usage, so that computing resources are not unnecessarily overused and can be allocated elsewhere. In this context... Petition 870250078581, dated 03 / 09 / 2025, page 50 / 108 46 / 80 certification, the size of the heated pool of client application servers 122 can be dynamically altered to accommodate periods of increased usage (e.g., usage spikes) as well as periods of quiet usage, in order to maintain real-time allocation of the client application server. In some implementations of the present invention, the matching mechanism 108 may include a suitable predictive model or utilize appropriate machine learning / artificial intelligence techniques to determine the size of the heated pool of client application servers 122. For example, a machine learning model may be trained based on usage trend data for client applications in order to minimize the time required to allocate a client application server and maintain a reduced allocation time for real-time client application server allocation.The machine learning model can then be used to dynamically and appropriately modify the size of the heated set of client application servers 122 based on usage at a given time. The machine learning model can be updated or adapted as client application usage trends change and evolve over time, as monitored, for example, by the matching mechanism 108. In some implementations of the present invention, the size of the heated set of client application servers 122 may be fixed at certain times and dynamic at other times. For example, for periods of time when usage is lower, the size of the heated set of client application servers 122 may be fixed. However, during periods (e.g., intermittent) of higher utilization (e.g., usage spikes), the size of the heated set of client application servers 122 may be dynamic.The 108 pairing mechanism can change the set size. Petition 870250078581, dated 03 / 09 / 2025, page 51 / 108 47 / 80 heated client application servers 122 revert to fixed as soon as the period of most intense usage ends. In this way, the set of client application servers 120 can adapt to constantly changing usage conditions as needed to maintain a reduced allocation time for real-time allocation of client application servers.

[063] In some implementations of the present invention, the pairing mechanism 108 may use HTTP long polling for the pairing process. Long polling is a technique for maintaining persistent connections with the server system 102. Long polling can be used to send information to a client device 134 as quickly as possible from the server system 102—the server system 102 may send data independently or send data to the client device 134 without the client device 134 making a request, so that information is sent as soon as it is available. As a result, the server system 102 does not need to wait for the client device 134 to send a request. The server system 102 does not terminate the connection with the client device 134 after receiving a request from the client device 134.Instead, server system 102 responds only if a new message is available or if a timeout limit is reached. Only when a message is delivered by server system 102 is the connection closed and re-established. Thus, as soon as client device 134 receives a response, it immediately sends a new request to server system 102 to have a new pending connection to send data to client device 134, and the operation is repeated. With this approach, server system 102 can emulate a real-time server sending feature. The pairing mechanism 108 can use 'long polling' to perform various functions, including enqueuing. Petition 870250078581, dated 03 / 09 / 2025, page 52 / 108 48 / 80 rar (e.g., entering the pairing process on a selection of models), remove from the queue (e.g., exiting the pairing process on all models), obtain a pair (e.g., polling the endpoint to ask the pairing process if a match has been found), confirm (e.g., a user selecting a “confirm” or “play” button indicating that the user is ready to start pairing), and verify the start (e.g., polling the endpoint to ask the pairing process if a tournament has been created and, if so, fetching the connection information from the client application server).

[064] Other functions are possible. As discussed earlier, the matching itself can be event-based and can be performed in memory (using actors) via a model-ordered dictionary.

[065] FIGURE 3 is a block diagram illustrating an example 300 of pairing for users of a client application, as performed by the pairing mechanism 108 using actor design patterns, according to the disclosure embodiments. In one embodiment, the pairing mechanism 108 can interact with the client application activity mechanism 104 and the user details mechanism 106 to support the pairing mechanism's queuing process. To initiate the pairer's queuing process, a user 302 (for example, the queuing process also applies to user 304 and user 306) can select a list of models in the user interface of the client application 138 running on user 302's client device 134. The SDK module 140 can send a request to the server system 102.The request may include, for example, the user ID, the list of model IDs, the client device ID 134, and whether or not the pairing is a bot match. It is. Petition 870250078581, dated 03 / 09 / 2025, p. 53 / 108 49 / 80 It is possible to include additional or alternative information in the request. The gateway module 110 can accept the request and create a request context that can be forwarded to the client application activity engine 104. The client application activity engine 104 can obtain information from the user details engine 106 to validate whether user 302 is permitted to participate in each selected model. This information can be used to determine, for example, whether user 302 is in a paid entry-enabled location, whether user 302 is registered, whether user 302 has sufficient funds (e.g., to participate in paid entry competitions), and similar factors.The client application activity mechanism 104 can sort the list of model IDs by, for example, type and value, such as high to low for contest models with paid registration, followed by high to low for contest models without paid registration, although other sorting methods for the list of model IDs are possible. The client application activity mechanism 104 can record or store the queuing event in databases 132. The client application activity mechanism 104 can also obtain user quarantine information from the user details mechanism 106.The client application activity mechanism 104 can create a suitable matching data object containing, for example, the list of ranked models, the user ID, user ratings, the total number of competitions (e.g., games) played, the SDK version, whether it is a match against a bot, the client application ID, the client device platform, whether the user is quarantined, a list of blacklisted users, and the client application version. Other information for the match data object is possible. The match data object can be passed to the matchmaking mechanism 108. The matchmaking mechanism 108 can obtain details. Petition 870250078581, dated 03 / 09 / 2025, page 54 / 108 50 / 80 additional data from other services (e.g., a user statistics service or similar), if desired, such as the number of synchronous competitions played, the number of synchronous competitions won, etc. At this stage, the 108 pairing mechanism has all the necessary data to find a match. The 108 pairing mechanism can create a Player Actor 308, initiate the pairing process (e.g., using the fast pairing technique) asynchronously, and can respond with an empty queue response. After the client application activity mechanism 104 receives the empty queue response from the 108 pairing mechanism, the client application activity mechanism 104 can request an estimated wait time and return the estimated wait time to the gateway module 110.The gateway module 110 can respond to the SDK module 140 on the client device 134 with the estimated wait time as a response to be displayed to the user 302 through the display module 142.

[066] Once the pairing mechanism 108 has all the necessary data to find a pair, it can check if a Player Actor already exists for the user ID and client application ID. If so, the matching mechanism 108 can return an appropriate error message (e.g., for display to the user via display module 142 on client device 134) to ensure that user 302 is only once in a client application's queue. Otherwise, the pairing mechanism creates the Player Actor 308 addressable by user ID and client application ID and sends a “enter pairer” message to it. When Player Actor 308 is created, an initialization function in Player Actor 308 can start sending heartbeat messages (at a configurable interval) to itself to determine if user 302 is still in the queue. If user 302 does not access Petition 870250078581, dated 03 / 09 / 2025, p. 55 / 108 51 / 80 the search endpoint “Get a Pair” during the entire timeout interval, Actor Player 308 may terminate. The initialization function can also configure the maximum lifetime of Actor Player 308 and configure appropriate cleanup functions that can be executed when Actor Player 308 terminates. When Actor Player 308 processes the pairer input message, it can send an SQS (Simple Queue Service) message or similar to log the event, it can send a queuing message to itself with the first model in the list, and it can schedule an expanded message to the next model (e.g., the model associated with Actor Model 316) with an appropriate delay based on the expansion technique (e.g., Equation (5) or other expansion technique). When Actor Player 308 processes the queuing message, it can send a queuing message to a Model Actor 314 specified in the message.When Actor Player 308 processes the expansion message, it can send a queuing message to the specified Actor Model 314, it can increment the expansion index, and it can schedule another expansion message for the next model (for example, the model associated with Actor Model 316) based on the expansion technique (for example, Equation (5) or another expansion technique).

[067] In one embodiment, Model Actors can be long-running actors that can represent a queue per model and can handle most of the matching logic, as discussed above. When Model Actor 314 processes the queued message, it can store the user in its queue in memory (which is an ordered dictionary, as discussed above). If there is more than one user in the queue, Model Actor 314 can filter the ordered dictionary for any matches with the maximum sort delta specified by the expansion algorithm. For each user Petition 870250078581, dated 03 / 09 / 2025, p. 56 / 108 If a 52 / 80 match falls within the maximum ranking delta, the Actor 314 Model can schedule a matching message calculated based on the differential (e.g., Link differential) between users. Although many matching messages can be sent, only the first message processed can represent a match. This allows the 108 matching mechanism to identify the fairest pair as quickly as the expansion algorithm allows, without consulting any queue—the only time a queue lookup is performed is when a new user joins the queue. When the Actor 314 Model processes a matching message, it may first check if both users are still in the queue. If not, the message may be ignored. This can occur frequently if many matching messages are processed.If both users are still in the queue, a pairing ID can be created (e.g., via UUID4, which is a randomly generated 128-bit universally unique identifier, or similar), a pending pairing data object can be created and stored, for example, in Mnesia, and a Pairing Actor 322 can be created that is addressable by the pairing ID. A dequeue message can be sent to each Actor Model 314, Actor Model 316, Actor Model 318, and Actor Model 320 in the queued model list. Each Player Actor (e.g., Player Actor 308, Player Actor 310, and Player Actor 312) can receive a termination message stating that a pair was found. When an Actor Model processes a dequeue message, the user can be removed from the sorted dictionary. When the 322 Pairing Actor processes a confirmation message, it can add that user to the list of confirmed users. When the 322 Pairing Actor processes a ready-to-start message, it can check if both users have confirmed. If Petition 870250078581, dated 03 / 09 / 2025, page 57 / 108 53 / 80 if both users have confirmed, the 108 pairing mechanism can retrieve the client application server information for pairing. For example, for a client application server from the plurality of client application servers 112, the 108 pairing mechanism can look up a ring hash IP address / port pair for the provided pairing ID. For a client application server from the client application server set 120, the 108 matching mechanism can request the allocation of a heated client application server from the heated client application server set 122 for matching.

[068] Thus, the model expansion performed by the matching mechanism 108 can begin by searching for the selected model with the highest ranking (e.g., model 10z associated with Actor Model 314 illustrated in FIGURE 3) according to the model order within a specified user skill range 302 (e.g., according to Equation (5) or another expansion technique). The skill range expansion by the matching mechanism 108 can occur after a calculated number of seconds (e.g., as determined by Equation (5) or another expansion technique) and is linked to each model. Independently, after a determined number of seconds, the matching mechanism 108 can add the next model with the highest ranking (e.g., model 5z associated with Actor Model 316 illustrated in FIGURE 3) within the specified user skill range 302.This expansion process can continue until a match is identified or until user 302 has reached the maximum skill range for each selected model. In some implementations of the present invention, the pairing performed by the matching mechanism 108 may be limited to a predetermined time interval (e.g., 5 minutes, 1 hour, 1 hour). Petition 870250078581, dated 03 / 09 / 2025, page 58 / 108 54 / 80 day, etc.) so that the pairing does not continue indefinitely. According to this implementation, if no match is found within the predetermined time interval (for example, covering all selected models), the user may be automatically declared the winner of the competition or tournament.

[069] In some implementations of the present invention, for the matchmaker search, the matchmaker mechanism 108 can check for the existence of a pending match for a user in Mnesia and return the matchmaker ID if the pending match exists. Otherwise, the matchmaker mechanism 108 cannot return any content if no pending match is found. To confirm and verify the start of the matchmaking, the matchmaker mechanism 108 can send a confirmation message to the Matchmaking Actor 322.

[070] Thus, for queuing functions, message flows can pass from gateway module 110 to client application activity mechanism 104 and then to pairing mechanism 108. For queuing functions, message flows can pass from gateway module 110 to matching mechanism 108. For match lookup, message flows can pass from gateway module 110 to matching mechanism 108. To confirm a pairing, message flows can pass from gateway module 110 to client application activity mechanism 104 and then to pairing mechanism 108. To check for a match, message flows can pass from gateway module 110 to pairing mechanism 108.

[071] In some implementations of the present invention, to ensure fair competition in synchronous client applications, the server system 102 can be configured to generate one or more if Petition 870250078581, dated 03 / 09 / 2025, page 59 / 108 55 / 80 minds of pseudo-random numbers for use by synchronous client applications to generate one or more pseudo-random numbers. Since random numbers can be used in client application mechanisms to decide client application elements and properties (for example, in the context of mobile games, the obstacles present can be decided based on the value returned by a random number generator), the use of common random numbers can provide a common client application experience to a subset of users (for example, users involved in a specific match, competition, or tournament in client applications). The common client application experience can be used to standardize (or level the playing field for) a client application that still has random elements.For illustrative and non-limiting purposes, although Tetris can be considered a game of skill, the order in which Tetris pieces are presented to the user is normally random. By providing a common stream of pseudo-random number seeds to each client application instance participating in an online competition or tournament, the order of the random elements (e.g., Tetris pieces) that appear to each user can be common across all participating client application instances. Thus, the results of a competitive tournament would be based entirely on skill, and not on the random chance of obtaining an easier order of, for example, presented Tetris pieces. In some implementations of the present invention, the server system 102 may use a pairing ID (or other information that uniquely identifies a match) as a seed to generate one or more pseudo-random number seeds. One or more pseudo-random number seeds may be characterized... [Petition 870250078581, dated 03 / 09 / 2025, page 60 / 108] 56 / 80 are assigned by the unique match ID. For example, the match ID can be used as input for a suitable pseudo-random number seed generation algorithm to generate one or more pseudo-random number seeds. Alternatively, one or more pseudo-random number seeds can be generated and associated with the match ID (e.g., in a lookup table or other suitable structure). The pseudo-random number seeds corresponding to the match ID can be retrieved by the server system 102 and transmitted to each user in the competition after the successful completion of the matching process discussed and described herein.The client application mechanism 136 on the respective client devices 134 of the users in the match may use one or more pseudo-random number seeds (in a suitable pseudo-random number generator) to generate the same pseudo-random number or numbers in the same order, so that each user in the match can interact with the same client application experience (e.g., the same game experience in the context of mobile games). In other words, one or more pseudo-random numbers may be used so that the start of the client application experience for a specific client application instance (e.g., a match, competition, or tournament) may be common among users in that client application instance. However, the start of the client application experience may differ between client application instances enrolled in different matches, competitions, or tournaments.Consequently, the client application interaction may differ between different matches, competitions, or tournaments, but not between instances of the client application involved in a given match, competition, or tournament.

[072] In some implementations of the present invention, the server system 102 may utilize a processing-based system. Petition 870250078581, dated 03 / 09 / 2025, page 61 / 108 57 / 80 based on ticks, so that received messages are not processed until the next tick and updates to the user are not transmitted or otherwise sent until the next tick. The tick-based processing system for the 102 server system can have several purposes. For example, the tick-based processing system can provide a consistent service SLA. The 102 server system can respond within the tick rate range, meaning that each transmission remains consistent regardless of the load on the 102 server system. This is useful for providing a consistent user experience and facilitating the implementation of frame interpolation on the client side and similar tasks. Furthermore, the tick-based processing system can provide fair processing of client inputs.When defining a frame of reference, a tick can allow the server system 102 to define a range for which entries are considered to have occurred “at the same time.” For example, if the tick rate is set high enough (greater than the latencies of both connected users), then there can be no fairness advantage for the user who is physically closer to (or has a faster connection to) the server system 102. A potential problem that can be introduced with a tick-based processing system is that the server system 102 must determine an order in which to process messages that occurred within the same tick. For illustrative purposes 31 and not limitation, two users in a mobile game click to pick up an item from the ground at the same instant.Which user should server system 102 consider to have selected the item? Server system 102 could assign an ID (for example, based on IP address or other identifying information) to each user, and the order could remain static throughout the session. However, such a solution could be problematic. Petition 870250078581, dated 03 / 09 / 2025, page 62 / 108 58 / 80 because the order can be discovered by users when viewing interactions with the mobile game, allowing them to gain an advantage. Alternatively, the 102 server system can periodically shuffle the order randomly. However, such a solution can also be problematic, as there may be gaps that allow users to discover their advantages / disadvantages and abuse them, and randomization can be computationally expensive. To solve these and other issues, in some implementations of the present invention, the 102 server system can simply reverse the order on each tick. This solution is fast because it does not depend on a randomization algorithm. This solution is also resistant to fraud, as each user's inputs are shuffled dozens of times per second or more, preventing users from identifying when they have an advantage.Even if a user could identify when they had an advantage, it would be shuffled multiple times before they had time to use it.

[073] In some implementations of the present invention, one or more of the client application servers may be used by the server system 102 as authoritative client application servers. In one embodiment, any or all of the client application state information may be stored on an authoritative client application server. In this configuration, the client devices 134 are not considered “trusted”. Each client device 134 may send requests to adjust the client application state information (for example, during a match, competition, or tournament) to the server system 102, which may be forwarded and processed by the authoritative client application server. The authoritative client application server may validate the requests. If the request is validated, the authoritative client application server may transmit the updated information about the client application state. Petition 870250078581, dated 03 / 09 / 2025, p. 63 / 108 59 / 80 enter on the next tick. This mechanism can ensure that there is no cheating with respect to client devices 134 during a match, competition or tournament, as requests that are not validated or that are considered invalid by the authoritative client application server will not be processed. At the end of the match, competition or tournament, the client application server can report information about the client application state (e.g., score or similar) of both users directly to the server system 102 (e.g., the matchmaking mechanism 108).This communication of information about the client application's state from server to server can significantly improve the resilience of the server system 102 to, for example, "man-in-the-middle" (MITM) attacks or other malicious attacks on the system 100 that can negatively affect other less robust client application server architectures (e.g., peer-to-peer, deterministic locking, etc.).

[074] In some implementations of the present invention, a matchmaking token can be used to prevent MITM and other similar malicious attacks by assuring client application servers that a match, competition, or tournament came from the matchmaking mechanism 108. In one embodiment, when a match is made, the matchmaking mechanism 108 can asymmetrically encrypt (e.g., via RSA or another suitable encryption algorithm) the current timestamp (e.g., when the match was identified or created) and can send a matchmaking token with the encrypted timestamp to the client device 134, with the IP / port of the client application server to which the client device 134 should connect (as discussed above).When connecting to the indicated client application server, client application 138 (via SDK module 140) can pass the encrypted token back to the client application server. Petition 870250078581, dated 03 / 09 / 2025, page 64 / 108 The 60 / 80 client application server may attempt to decrypt the encrypted token. The client application server can only successfully decrypt the encrypted token if it was encrypted by the key maintained and used by the 108 matching mechanism. If decryption is successful, the client application server can "see" or access the timestamp at which the match was identified or created, thus confirming that the match, competition, or tournament came from or originated from the 108 matching mechanism. In this way, the client application server can reject connections associated with matches, competitions, or tournaments that do not originate from the 108 matching mechanism. In some implementations of this application, the timestamp may have or be associated with an expiration period or window (e.g., 1 hour after match creation, 1 day after match creation, or similar).Consequently, once the client application server successfully decrypts the timestamp, it can analyze it to determine if the token has expired (i.e., if the timestamp is beyond the expiration window). If the token has expired, the client application server can reject the connection associated with the match, competition, or tournament in question. In this way, the client application server can prevent long-expired matches, competitions, or tournaments from potentially being used for malicious attacks against the 102 server system.

[075] FIGURE 4 is a flowchart of an example method. 400 to manage interactions between users of client applications. In some implementations of the present invention, method 400 may be executed by the server system 102. In block 405, the server system 102 may receive a first request from a first client device (for example, one of the client devices 134) from a plurali Petition 870250078581, dated 03 / 09 / 2025, pages 65 / 108 61 / 80 a plurality of client devices running a client application (e.g., client application 138) to initiate an interactive electronic session in the client application with one or more other client devices from the plurality of client devices based on a first plurality of interaction models selected on the first client device. In one embodiment, the first client device can be queued simultaneously in each of the first several interaction models. In one embodiment, each of the first interaction models can be associated with a different instance of a pairing instance set.In block 410, server system 102 can receive a second request from a second client device (for example, one of client devices 134) from the plurality of client devices to initiate an electronic interactive session in the client application with one or more other client devices based on a second plurality of interaction models selected on the second client device. In one embodiment, the second client device can be queued simultaneously in each of the second multiple interaction models.In block 415, server system 102 can determine, using one or more instances of the pairing plurality of pairing instances (for example, through the pairing mechanism 108 using the actor design patterns), the electronic interactive session between the first client device and the second client device based on identifying a match between one of the first interaction models and one of the second interaction models. In block 420, server system 102 can allocate a client application server from a set of pre-instantiated client application servers (for example, client application server set 120) for use with the client application during the electronic interactive session, where another pre-instantiated client application server is added to the server set. Petition 870250078581, dated 03 / 09 / 2025, pages 66 / 108 62 / 80 pre-instantiated client application servers (e.g., from the client application server set repository) to replace the allocated client application server. In block 425, server system 102 can provide the electronic interactive session between the first client device and the second client device in the client application. In one embodiment, the allocated client application server can be deallocated at the end of the electronic interactive session.

[076] The subject described here offers many technical advantages. For example, by using a client actor per client application model, the present invention can support linear scheduling and in-memory matching, requires no memory locking or duplicated work, and can be event-driven, thus substantially improving the utilization of computer resources. In other words, by using model actors, the 108 matching mechanism can be scaled to support the simultaneous matching of a large number of users, such as hundreds of thousands, millions, tens of millions, or more users. Thus, some implementations of the present invention can improve the efficiency and processing capabilities of computer hardware resources (e.g., computer processing and memory) to identify matches, supporting and providing substantially faster matching times, particularly for client applications with a large number of users.For example, some implementations of the present invention can more efficiently handle a large number of queued users and identify matches across multiple models simultaneously. By improving the speed and efficiency of matchmaking for client applications with a large number of users, computer hardware resources can be freed up more quickly and used for other tasks and processes, resulting in a significant improvement in resource utilization. Petition 870250078581, dated 03 / 09 / 2025, pages 67 / 108 63 / 80 computer.

[077] FIGURE 5 is a block diagram of an example of a 500 computing device that can perform one or more of the operations described herein, according to the present embodiments. The 500 computing device can be connected to other computing devices on a LAN, intranet, extranet, and / or the Internet. The 500 computing device can function as a server machine in a client-server network environment or as a client in a peer-to-peer network environment. The 500 computing device can be provided by a personal computer (PC), a set-top box (STB), a server, a network router, a switch or a bridge, or any machine capable of executing a set of instructions (sequential or not) that specify the actions to be performed by that machine.Furthermore, although only a single computing device 500 is illustrated, the term "computing device" should also be interpreted as including any set of computing devices that, individually or collectively, execute a set (or multiple sets) of instructions to accomplish the methods discussed herein.

[078] The exemplary computing device 500 may include a computational processing device 502 (e.g., a general-purpose processor, ASIC, etc.), a main memory 504, a static memory 506 (e.g., flash memory or similar), and a data storage device 508, which may communicate with each other via a bus 530. The computational processing device 502 may be provided by one or more general-purpose processing devices, such as a microprocessor, a central processing unit, or the like. In an illustrative example, the computational processing device 502 may comprise an instruction set microprocessor. Petition 870250078581, dated 03 / 09 / 2025, pages 68 / 108 64 / 80 complex operations (CISC), a reduced instruction set microprocessor (RISC), a very long instruction word (VLIW) microprocessor, or a processor that implements other instruction sets or processors that implement a combination of instruction sets. The 502 computational processing device may also comprise one or more special-purpose processing devices, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like. The 502 computational processing device may be configured to perform the operations described herein, in accordance with one or more aspects of this disclosure, to accomplish the operations and steps discussed herein.

[079] The computing device 500 may further include a network interface device 512, which can communicate with a network 514. The data storage device 508 may include a machine-readable storage medium 528 in which one or more instruction sets may be stored, for example, instructions for performing the operations described herein, in accordance with one or more aspects of this disclosure. The instructions 518 that implement the core logical instructions 526 may also reside, wholly or partially, in the main memory 504 and / or the computer processing device 502 during their execution by the computing device 500, the main memory 504 and the computer processing device 502 also constituting machine-readable media. The instructions may also be transmitted or received over the network 514, by means of the network interface device 512.

[080] Although the machine-readable storage medium 528 is shown in an illustrative example as a single medium, the Petition 870250078581, dated 03 / 09 / 2025, pages 69 / 108 65 / 80 mo “Computer-readable storage medium” should be understood as including a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more instruction sets. The term “computer-readable storage medium” should also be interpreted as including any medium capable of storing, encoding, or transporting an instruction set for execution by the machine and that causes the machine to execute the methods described herein. The term “computer-readable storage medium” should therefore be interpreted as including, among others, solid-state memories, optical media, magnetic media, and the like.

[081] The embodiments of the subject matter and the operations described in this disclosure may be implemented in digital electronic circuits or in computer software, firmware, or hardware, including the structures disclosed in this disclosure and their structural equivalents, or in combinations of one or more of them. The embodiments of the subject matter described in this disclosure may be implemented as one or more computer programs, that is, one or more modules of computer program instructions, encoded in a computer storage medium for execution by, or to control the operation of, a data processing device. The embodiments of the subject matter described in this specification may be implemented as one or more computer programs, that is, one or more modules of computer program instructions encoded in a tangible non-transient storage medium for execution by, or to control the operation of, a data processing device.A computer storage medium may be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random-access or serial-access memory array or device, or a combination thereof. Petition 870250078581, dated 03 / 09 / 2025, pp. 70 / 108 66 / 80 nation of one or more of them. Furthermore, although a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium may also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

[082] The operations described in this disclosure can be implemented as operations performed by a data processing device on data stored in one or more computer-readable storage devices or received from other sources.

[083] The term “data processing device” encompasses all types of apparatus, devices and machines for data processing, including, by way of example, a programmable processor, a computer processing device, a computer, a system-on-a-chip or several of them, or combinations thereof. A computer processing device may include one or more processors which may include logic circuits for specific purposes, for example, an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit), a central processing unit (CPU), a multi-core processor, etc.The device may also include, in addition to the hardware, code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of these. The device and the execution environment... Petition 870250078581, dated 03 / 09 / 2025, pp. 71 / 108 67 / 80 tion can implement various different computing model infrastructures, such as web services, distributed computing, and network computing infrastructures.

[084] A computer program (also known as a program, software, software application, script, or code) can be written in any type of programming language, including compiled or interpreted, declarative, procedural, or functional languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but does not have to, correspond to a file in a file system. A program may be stored in a portion of a file that contains other programs or data (for example, one or more scripts stored in a markup language resource), in a single file dedicated to the program in question, or in multiple coordinated files (for example, files that store one or more modules, subprograms, or code portions).A computer program can be deployed to run on one computer or on multiple computers located at a site, or distributed across multiple sites and interconnected by a communication network.

[085] The processes and logical flows described in this disclosure may be executed by one or more programmable processors that run one or more computer programs to perform actions operating on input data and generating output. The processes and logical flows may also be executed by, and devices may also be implemented as, purpose-specific logic circuits, for example, an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit).

[086] Processors suitable for executing a pro Petition 870250078581, dated 03 / 09 / 2025, pp. 72 / 108 68 / 80 grams of computer components include, by way of example, general-purpose and special-purpose microprocessors and any one or more processors of any type of digital computer. Generally, a processor will receive instructions and data from read-only memory or random-access memory or both. The essential elements of a computer are a processor to execute actions according to instructions and one or more memory devices to store instructions and data. Generally, a computer will also include, or be operationally coupled to receive data from or transfer data to, or both, one or more mass storage devices to store data, for example, magnetic disks, magneto-optical disks, optical disks, solid-state drives, or similar. However, a computer does not need to have these devices.Furthermore, a computer can be incorporated into another device, for example, a smartphone, a mobile audio or media user, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a USB (Universal Serial Bus) flash drive), to name just a few examples. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, memory media and devices, including, by way of example, semiconductor memory devices, e.g., EPROM, EEPROM and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated into, special-purpose logic circuits.

[087] To enable interaction with a user, the embodiments of the object described in this specification may be implemented on a computer with a display device, for example, a Petition 870250078581, dated 03 / 09 / 2025, page 73 / 108 69 / 80 A CRT (cathode ray tube), LCD (liquid crystal display), LED (light-emitting diode) monitor, or similar, to display information to the user, and a keyboard and a pointing device, for example, a mouse, a scroll ball, a touch-sensitive keyboard, a stylus pen, or similar, through which the user can provide input to the computer. Other types of devices may also be used to provide user interaction; for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and user input may be received in any form, including acoustic, speech, or tactile input.Other possible input devices include touch screens or other touch-sensitive devices such as single-point or multi-point resistive or capacitive trackpads, speech recognition hardware and software, optical scanners, optical pointers, digital image capture devices and associated interpretation software, and the like. Additionally, a computer can interact with a user by sending resources to and receiving resources from a device used by the user; for example, sending web pages to a web browser on the user's client device in response to requests received from the web browser.

[088] The embodiments of the subject matter described in this disclosure may be implemented in a computing system that includes a backend component, for example, a data server, or that includes a middle component, for example, an application server, or that includes a frontend component, for example, a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this disclosure, or any combination of one or more of these backend components, Petition 870250078581, dated 03 / 09 / 2025, pp. 74 / 108 70 / 80 intermediate or front-end connections. The system components can be interconnected by any form or means of digital data communication, for example, a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an internetwork (e.g., the Internet), point-to-point networks (e.g., ad hoc point-to-point networks), and the like.

[089] The computing system may include clients and servers. A client and a server are generally remote from each other and typically interact through a communication network. The client-server relationship arises from computer programs running on their respective computers and having a client-server relationship with each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., to display data and receive input from the user interacting with the client device). Data generated on the client device (e.g., a result of user interaction) can be received from the client device on the server.

[090] A system composed of one or more computers can be configured to perform specific operations or actions, thanks to the installation of software, firmware, hardware, or a combination thereof in the system, which, when running, cause the system to execute the actions. One or more computer programs can be configured to perform specific operations or actions, including instructions that, when executed by a data processing device, cause the device to execute the actions.

[091] The reference throughout this disclosure to “an embodiment” means that a specific feature, structure or characteristic described in relation to the embodiments is included in at least one embodiment. Thus, occurrences of the expression “in an embodiment” in various places throughout this disclosure do not mean Petition 870250078581, dated 03 / 09 / 2025, pp. 75 / 108 71 / 80 necessarily all refer to the same realization. Furthermore, the term "or" is intended to denote an inclusive "or," rather than an exclusive "or."

[092] Although this disclosure contains many implementation-specific details, these should not be interpreted as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of specific features of particular embodiments of particular inventions. Certain features that are described in this disclosure in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, several features that are described in the context of a single embodiment may also be implemented in several embodiments separately or in any suitable subcombination.Furthermore, although features may be described in this document as acting in certain combinations and / or initially claimed as such, one or more features of a claimed combination may, in some cases, be excluded from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination or variation of a subcombination.

[093] Similarly, although the operations and / or logical flows are represented in the drawings and / or described herein in a specific order, this should not be understood as requiring that such operations and / or logical flows be executed in the specific order shown or in sequential order, or that all illustrated operations be executed, to achieve the desired results. In certain circumstances, multitasking and parallel processing may be advantageous. Furthermore, the separation of various systems and components in the modalities described above should not be understood as requiring such separation in all modalities, and it should be understood that the Petition 870250078581, dated 03 / 09 / 2025, pp. 76 / 108 72 / 80 components and program systems described can generally be integrated into a single software product or packaged into multiple software products.

[094] Thus, specific embodiments of the object in question have been described. Other embodiments are within the scope of the following claims. In some cases, the actions described in the claims may be performed in a different order and still achieve the desired results. Furthermore, the processes described in the attached figures do not necessarily require the specific order presented, or sequential order, to achieve the desired results. In certain implementations, multitasking and parallel processing may be advantageous.

[095] The words example or exemplary are used here to denote serving as an example, instance, or illustration. Any aspect or design described here as an 'example' or exemplary should not necessarily be interpreted as preferred or advantageous in relation to other aspects or designs. Rather, the use of the words example or exemplary aims to present concepts in a concrete manner. As used in this request, the term 'or' is intended to denote an inclusive 'or', rather than an exclusive 'or'. That is, unless otherwise specified or clearly from the context, “X includes A or B” is intended to denote any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then X includes A or B is satisfied in any of the preceding instances.Furthermore, the articles "a" and "an," as used in this application and the attached claims, should generally be interpreted as meaning "one or more," unless otherwise specified or clear from the context to be directed to a singular form. Additionally, the use of the terms "an embodiment" throughout the text is not intended to mean "the same." Petition 870250078581, dated 03 / 09 / 2025, pp. 77 / 108 73 / 80 in realization or implementation, unless otherwise described. Furthermore, the terms “first”, “second”, “third”, “fourth”, etc., as used in this document, are intended to distinguish between different elements and may not necessarily have an ordinal meaning according to their numerical designation.

[096] In the descriptions above and in the claims, phrases such as 'at least one of' or 'one or more of' may occur followed by a conjunctive list of elements or features. The term 'and / or' may also occur in a list of two or more elements or features. Unless otherwise implied or explicitly contradicted by the context in which it is used, such a phrase is intended to mean either any of the listed elements or features individually or either of the stated elements or features in combination with any of the other stated elements or features. For example, the sentences 'at least one of A and B'; 'one or more of A and B'; and 'A and / or B' are intended to mean 'A alone', 'B alone', or 'A and B together'. A similar interpretation is also intended for lists that include three or more items.For example, the sentences at least one of A, B, and C; one or more of A, B, and C; and A, B, and / or C each mean A alone, B alone, C alone, A and B together, A and C together, B and C together, or A and B and C together. Furthermore, the use of the term "based on" above and in the claims is intended to mean, "based at least in part on," so that an undeclared feature or element is also permitted.

[097] The above description of the illustrated implementations of the invention is not intended to be exhaustive nor to limit the invention to the precise forms disclosed. Although specific implementations and examples of the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant technical field will recognize. Petition 870250078581, dated 03 / 09 / 2025, pp. 78 / 108 The subject described in this document can be incorporated into systems, devices, methods, and / or articles, depending on the desired configuration. The implementations set forth in the preceding description do not represent all implementations consistent with the subject described herein. Instead, they are merely examples consistent with aspects related to the subject described. While some variations have been described in detail above, other modifications or additions are possible. In particular, other features and / or variations beyond those described herein may be provided. For example, the implementations described above may be directed toward various combinations and subcombinations of the disclosed features and / or combinations and subcombinations of several other features disclosed above. Other implementations may fall within the scope of the following claims.

[098] Other non-limiting aspects or concretizations are presented in the following numbered clauses:

[099] Clause 1: A method comprising the receipt, by at least one data processor, of a first request from a first client device running a client application to initiate an interactive electronic session in the client application with one or more additional client devices, the first request based on a first plurality of interaction models associated with the first client device, the first plurality of interaction models associated with a respective plurality of actors, each actor of the respective plurality of actors independent of the other actors of the respective plurality of actors, receiving, by at least one data processor, a second request from a second client device to initiate the interactive electronic session in the client application with one or more additional client devices, the second request based on a second plurality of interaction models associated Petition 870250078581, dated 03 / 09 / 2025, pp. 79 / 108 75 / 80 of the data to the second client device, the second plurality of interaction models associated with a respective plurality of additional actors, each actor of the respective plurality of additional actors independent of the other actors of the respective plurality of additional actors, determine, by at least one data processor using one or more pairing instances, the electronic interactive session between the first client device and the second client device based on the identification of a pairing between one of the first several interaction models and one of the second several interaction models selected on the second client device, the identification of the pairing based on a simultaneous processing model that allows scaling to a plurality of servers independent of an architectural modification of any of the servers in the plurality, the allocation, by at least one data processor,from a client application server, originating from a set of pre-instantiated client application servers for use with the client application during the electronic interactive session, and providing, by at least one data processor, the electronic interactive session between the first client device and the second client device in the client application.

[0100] Clause 2: The method of clause 1, where the first client device is queued simultaneously in each of the first several interaction models, and another pre-instantiated client application server is added to the set of pre-instantiated client application servers to replace the client application server that is allocated.

[0101] Clause 3: The method of clause 1, in which each of the first interaction models is associated with a corresponding instance of a plurality of pairing instances.

[0102] Clause 4: The method of clause 1, in which the second Petition 870250078581, dated 03 / 09 / 2025, pages 80 / 108 76 / 80 client devices are queued simultaneously in each of the various interaction models.

[0103] Clause 5: The method of clause 1, in which the respective plurality of actors and the respective plurality of additional actors comprise behavior or logic.

[0104] Clause 6: The method of clause 1, wherein a first actor from the respective plurality of actors capable of modifying a specific state of the first actor, the modification independently of the remaining actors from the respective plurality of actors, and a second actor from the respective additional plurality of actors capable of modifying an additional specific state of the second actor, the additional modification independently of the remaining actors from the respective additional plurality of actors.

[0105] Clause 7: The method of clause 6, whereby the allocated client application server is deallocated at the end of the electronic interactive session, the first plurality of interaction models selected on the first client device and the second plurality of interaction models selected on the second client device.

[0106] Clause 8: A system comprising: at least one data processor and a memory that stores instructions which, when executed by at least one data processor, cause at least one data processor to perform operations comprising: receiving, by at least one data processor, a first request from a first client device running a client application to initiate an interactive electronic session in the client application with one or more additional client devices; The first request based on a first plurality of interaction models associated with the first client device, the first plurality of interaction models associated with a respective plurality of actors, each actor of the respective plurality of actors independent Petition 870250078581, dated 03 / 09 / 2025, pages 81 / 108 77 / 80 from the remaining actors in the respective plurality of actors, receiving, by at least one data processor, a second request from a second client device to initiate the electronic interactive session in the client application with one or more additional client devices, the second request based on a second plurality of interaction models associated with the second client device, the second plurality of interaction models associated with a respective plurality of additional actors, each actor in the respective plurality of additional actors independent of the remaining actors in the respective plurality of additional actors, determining, by at least one data processor using one or more pairing instances,The electronic interactive session between the first client device and the second client device is based on identifying a match between one of several interaction models from the first and one of several interaction models selected on the second client device; the identification of the match is based on a concurrent processing model that allows scaling to a plurality of servers independent of an architectural modification of any of the servers in the plurality; at least one data processor allocates a client application server from a set of pre-instantiated client application servers for use with the client application during the electronic interactive session; and at least one data processor provides the electronic interactive session between the first client device and the second client device in the client application.

[0107] Clause 9: The system of clause 8, in which the first client device is queued simultaneously in each of the first several interaction models, and another pre-instantiated client application server is added to the set of pre-instantiated client application servers to replace the client application server. Petition 870250078581, dated 03 / 09 / 2025, pages 82 / 108 78 / 80 is allocated.

[0108] Clause 10: The system of clause 8, in which each of the first interaction models is associated with a corresponding instance of a plurality of pairing instances.

[0109] Clause 11: The system of clause 8, in which the second client device is queued simultaneously in each of the second several interaction models.

[0110] Clause 12: The system of clause 8, in which a first actor from the respective plurality of actors capable of a specific modification of the first actor, the independent modification of the remaining actors from the respective plurality of actors, and a second actor from the respective additional plurality of actors capable of an additional modification of a specific additional state of the second actor, the independent additional modification of the remaining actors from the respective additional plurality of actors.

[0111] Clause 13: The system of clause 8, in which the client application server that is allocated is deallocated at the end of the interactive electronic session.

[0112] Clause 14: The system of clause 13, in which the first plurality of interaction models is selected on the first client device and the second plurality of interaction models is selected on the second client device.

[0113] Clause 15: A non-transient computer program product that stores executable instructions that, when executed by at least one data processor that is part of at least one computing system, implement operations comprising receiving a first request from a first client device running a client application to initiate an interactive electronic session in the client application with one or more additional client devices, the first request based on a first plurali Petition 870250078581, dated 03 / 09 / 2025, page 83 / 108 79 / 80 a plurality of interaction models associated with the first client device, the first plurality of interaction models associated with a respective plurality of actors, each actor of the respective plurality of actors independent of the remaining actors of the respective plurality of actors, receiving a second request from a second client device to initiate the electronic interactive session in the client application with one or more additional client devices, the second request based on a second plurality of interaction models associated with the second client device, the second plurality of interaction models associated with a respective plurality of additional actors, each actor of the respective plurality of additional actors independent of the remaining actors of the respective plurality of additional actors, determining, using one or more pairing instances,The interactive electronic session between the first client device and the second client device is based on identifying a match between one of several interaction models from the first and one of several interaction models selected on the second client device; identifying the match based on a simultaneous processing model that allows scaling to a plurality of servers independent of any architectural modification of any of the servers in the plurality; allocating a client application server from a set of pre-instantiated client application servers for use with the client application during the interactive electronic session; and providing the interactive electronic session between the first client device and the second client device in the client application.

[0114] Clause 16: The non-transient computer program product of clause 15, wherein the first client device is queued simultaneously in each of the first several interaction models, each of the first several interaction models is Petition 870250078581, dated 03 / 09 / 2025, pages 84 / 108 An 80 / 80 allocation is associated with a matching instance from a series of matching instances, and another pre-instantiated client application server is added to the set of pre-instantiated client application servers to replace the allocated client application server.

[0115] Clause 17: The non-transient computer program product of clause 15, in which the second client device is queued simultaneously in each of the second several interaction models.

[0116] Clause 18: The non-transitory computer program product of clause 15, wherein the determination of the electronic interactive session between the first client device and the second client device is based on the identification of a match between one of the first several interaction models and one of the second several interaction models.

[0117] Clause 19: The non-transitory computer program product of clause 15, in which the respective plurality of actors and the respective plurality of additional actors comprise behavior or logic.

[0118] Clause 20: The non-transitory computer program product of clause 15, the client application server that is allocated is deallocated at the end of the electronic interactive session, the first plurality of interaction models selected on the first client device and the second plurality of interaction models selected on the second client device. Petition 870250078581, dated 03 / 09 / 2025, pp. 85 / 108

Claims

1 / 8 CLAIMS 1. A method characterized in that it comprises: receiving, by at least one data processor, a first request from a first client device running a client application to initiate an interactive electronic session in the client application with one or more additional client devices, the first request based on a first plurality of interaction models associated with the first client device, the first plurality of interaction models associated with a respective plurality of actors, each actor of the respective plurality of actors independent of the remaining actors of the respective plurality of actors;to receive, by at least one data processor, a second request from a second client device to initiate an interactive electronic session in the client application with one or more additional client devices, the second request based on a second plurality of interaction models associated with the second client device, the second plurality of interaction models associated with a respective plurality of additional actors, each actor in the respective plurality of additional actors independent of the other actors in the respective plurality of additional actors;to determine, by at least one data processor using one or more pairing instances, the interactive electronic session between the first client device and the second client device based on the identification of a pairing between one of the first several interaction models and one of the second several interaction models selected on the second client device, the identification of the pairing based on a simultaneous processing model that allows scaling to multiple servers, regardless of any architectural modification on any of the multiple servers; Petition 870250078581, dated 03 / 09 / 2025, p. 86 / 108 2 / 8 to allocate, by at least one data processor, a client application server from a set of pre-instantiated client application servers for use with the client application during the interactive electronic session;and provide, through at least one data processor, the interactive electronic session between the first client device and the second client device in the client application.

2. A method according to claim 1, characterized in that: the first client device is queued simultaneously in each of the first interaction models; and another pre-instantiated client application server is added to the set of pre-instantiated client application servers to replace the client application server that is allocated.

3. Method according to claim 1, characterized in that each of the first interaction models is associated with a corresponding instance of a plurality of pairing instances.

4. Method according to claim 1, characterized in that the second client device is queued simultaneously in each of the second multiple interaction models.

5. Method according to claim 1, characterized in that the plurality of actors and the plurality of additional actors comprise behavior or logic.

6. Method according to claim 1, characterized in that: a first actor from the respective plurality of actors capable of a specific modification of the state of the first actor, the modification being independent of the other actors from the respective plurality of actors; and Petition 870250078581, dated 03 / 09 / 2025, page 87 / 108 3 / 8 a second actor from the respective additional plurality of actors capable of an additional modification of a specific additional state for the second actor, the additional modification being independent of the remaining actors from the respective additional plurality of actors.

7. Method according to claim 6, characterized in that: the allocated client application server is deallocated at the end of the interactive electronic session; the first plurality of interaction models selected on the first client device; and the second plurality of interaction models selected on the second client device.

8. A system characterized in that it comprises: at least one data processor; and memory storage instructions that, when executed by at least one data processor, cause at least one data processor to perform operations that include: receiving, by at least one data processor, a first request from a first client device running a client application to initiate an interactive electronic session in the client application with one or more additional client devices, the first request based on a first plurality of interaction models associated with the first client device, the first plurality of interaction models associated with a respective plurality of actors, each actor of the respective plurality of actors independent of the remaining actors of the respective plurality of actors;to receive, at least one data processor, a second request from a second client device to initiate the electronic interactive session in the client application with one or more additional client devices, the second request based on a second plurality of interaction models associated with the second client device, the second plurality of interaction models associated with a respective plurality of additional actors, each actor of the respective plurality of additional actors independent of the other actors of the respective plurality of additional actors;to determine, using at least one data processor and one or more pairing instances, the interactive electronic session between the first client device and the second client device based on the identification of a pairing between one of the first several interaction models and one of the second several interaction models selected on the second client device, the identification of the pairing based on a simultaneous processing model that allows scaling to multiple servers, regardless of an architectural modification on any of the multiple servers; to allocate, through at least one data processor, a client application server from a set of pre-instantiated client application servers for use with the client application during the interactive electronic session;and provide, through at least one data processor, the interactive electronic session between the first client device and the second client device in the client application.

9. System according to claim 8, characterized in that: the first client device is queued simultaneously in each of the first interaction models; and another pre-instantiated client application server is added to the set of pre-instantiated client application servers to replace the allocated client application server. Petition 870250078581, dated 03 / 09 / 2025, pp. 89 / 108 5 / 8 10. System according to claim 8, characterized in that each of the first interaction models is associated with a corresponding instance of a plurality of pairing instances.

11. System according to claim 8, characterized in that the second client device is queued simultaneously in each of the interaction models of the second plurality.

12. System according to claim 8, characterized in that: a first actor from the respective plurality of actors capable of a specific modification of the state of the first actor, the modification being independent of the other actors from the respective plurality of actors; and a second actor from the respective additional plurality of actors capable of a further modification of a specific additional state of the second actor, the further modification being independent of the remaining actors from the respective additional plurality of actors.

13. System according to claim 8, characterized in that the allocated client application server is deallocated at the end of the interactive electronic session.

14. System according to claim 13, characterized in that: the first plurality of interaction models is selected on the first client device; and the second plurality of interaction models is selected on the second client device.

15. Non-transient computer program product characterized by the fact that it stores executable instructions that, when executed by at least one data processor that is part of at least one computing system, implement Petition 870250078581, dated 03 / 09 / 2025, page 90 / 108 6 / 8 operations comprising: receiving a first request from a first client device running a client application to initiate an interactive electronic session in the client application with one or more additional client devices, the first request based on a first plurality of interaction models associated with the first client device, the first plurality of interaction models associated with a respective plurality of actors, each actor of the respective plurality of actors independent of the other actors of the respective plurality of actors;to receive a second request from a second client device to initiate an electronic interactive session in the client application with one or more additional client devices, the second request based on a second plurality of interaction models associated with the second client device, the second plurality of interaction models associated with a respective plurality of additional actors, each actor in the respective plurality of additional actors independent of the remaining actors in the respective plurality of additional actors;To determine, using one or more pairing instances, the electronic interactive session between the first client device and the second client device based on the identification of a pairing between one of the first several interaction models and one of the second several interaction models selected on the second client device, wherein the pairing identification is based on a concurrent processing model that allows scaling to multiple servers, regardless of any architectural modification on any of the multiple servers; to allocate a client application server from a set of pre-instantiated client application servers for use with the client application during the electronic interactive session; and Petition 870250078581, dated 03 / 09 / 2025, pp. 91 / 108 7 / 8 to provide the electronic interactive session between the first client device and the second client device in the client application.

16. Non-transient computer program product according to claim 15, characterized in that: the first client device is queued simultaneously in each of the first interaction models; each of the first interaction models is associated with a corresponding instance of a pairing instance series; and another pre-instantiated client application server is added to the set of pre-instantiated client application servers to replace the allocated client application server.

17. Non-transient computer program product according to claim 15, characterized in that the second client device is queued simultaneously in each of the second plurality interaction models.

18. Non-transient computer program product according to claim 15, characterized in that the determination of the electronic interactive session between the first client device and the second client device is based on the identification of a pairing between one of the first several interaction models and one of the second several interaction models.

19. Non-transient computer program product according to claim 15, characterized in that the respective plurality of actors and the respective plurality of additional actors comprise behavior or logic.

20. Non-transient computer program product according to claim 15, characterized in that: the allocated client application server is deallocated at the end of the interactive electronic session; the first plurality of interaction models selected on the first client device; and the second plurality of interaction models selected on the second client device.