# US 11,909,707 B2 · Message schema migration in messaging systems

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

- Number: US 11,909,707 B2
- Document ID: US11909707B2
- Status: Granted
- Kind: B2
- Application number: 17/721,568
- Filed: 2022-04-15
- Published: 2023-10-19
- Granted: 2024-02-20
- Earliest claimed: 2022-04-15
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Carles Arnal Castello; Paolo Antinori
- Web page: https://patentgrep.com/patent/US11909707B2

## CPC

- H04L 51/56: Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
- H04L 51/066: Format adaptation, e.g. format conversion or compression
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for providing message schema migration in messaging systems. In one implementation, a definition of a messaging schema is received. One or more transformation files associated with the messaging schema is received, wherein the one or more transformation files define a plurality of transformations to be applied to incoming messages. An order of applying the plurality of transformations is determined. The plurality of transformations is applied to a message of the incoming messages according to the determined order. The message is forwarded to a messaging system.

## Claims

### Claim 1

A method, comprising:
receiving a definition of a messaging schema;
receiving one or more transformation files associated with the messaging schema, wherein the one or more transformation files define a plurality of transformations to be applied to incoming messages;
determining an order of applying the plurality of transformations;
identifying, based on a migration file associated with the one or more transformation files, a status of whether each transformation of the plurality of transformations has been applied to a message of the incoming messages;
applying, to the message of the incoming messages, one or more transformations of the plurality of transformations according to the determined order and the identified status; and
forwarding the message to a messaging system.

### Claim 2 (depends on 1)

The method of claim 1, wherein the order of applying the plurality of transformations is specified by the migration file, wherein the migration file comprises one or more pointers to the one or more transformation files.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
performing one or more validations of the message prior to applying the plurality of transformations to the message.

### Claim 4 (depends on 1)

The method of claim 1, wherein forwarding the message to the messaging system comprises:
identifying a first messaging system from which the message was received; and
forwarding the message to the first messaging system.

### Claim 5 (depends on 1)

The method of claim 1, wherein forwarding the message to the messaging system comprises:
identifying a first messaging system from which the message was received; and
forwarding the message to a second messaging system, wherein the second messaging system is different from the first messaging system.

### Claim 6 (depends on 1)

The method of claim 1, wherein forwarding the message to the messaging system comprises:
identifying a first channel of a first messaging system from which the message was received; and
forwarding the message to the first channel of the first messaging system.

### Claim 7 (depends on 1)

The method of claim 1, wherein forwarding the message to the messaging system comprises:
identifying a first channel of a first messaging system from which the message was received; and
forwarding the message to a second channel of the first messaging system, wherein the second channel is different from the first channel.

### Claim 8

A system comprising:
a memory;
a processing device operatively coupled to the memory, the processing device configured to:
receive a definition of a messaging schema;
receive one or more transformation files associated with the messaging schema, wherein the one or more transformation files define a plurality of transformations to be applied to incoming messages;
determine an order of applying the plurality of transformations;
identify, based on a migration file associated with the one or more transformation files, a status of whether each transformation of the plurality of transformations has been applied to a message of the incoming messages;
apply, to the message of the incoming messages, one or more transformations of the plurality of transformations according to the determined order and the identified status; and
forward the message to a messaging system.

### Claim 9 (depends on 8)

The system of claim 8, wherein the order of applying the plurality of transformations is specified by the migration file, wherein the migration file comprises one or more pointers to the one or more transformation files.

### Claim 10 (depends on 8)

The system of claim 8, further comprising:
performing one or more validations of the message prior to applying the plurality of transformations to the message.

### Claim 11 (depends on 8)

The system of claim 8, wherein forwarding the message to the messaging system comprises:
identifying a first messaging system from which the message was received; and
forwarding the message to the first messaging system.

### Claim 12 (depends on 8)

The system of claim 8, wherein forwarding the message to the messaging system comprises:
identifying a first messaging system from which the message was received; and
forwarding the message to a second messaging system, wherein the second messaging system is different from the first messaging system.

### Claim 13 (depends on 8)

The system of claim 8, wherein forwarding the message to the messaging system comprises:
identifying a first channel of a first messaging system from which the message was received; and
forwarding the message to the first channel of the first messaging system.

### Claim 14

A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
receiving a definition of a messaging schema;
receiving one or more transformation files associated with the messaging schema, wherein the one or more transformation files define a plurality of transformations to be applied to incoming messages;
determining an order of applying the plurality of transformations;
identifying, based on a migration file associated with the one or more transformation files, a status of whether each transformation of the plurality of transformations has been applied to a message of the incoming messages;
applying, to the message of the incoming messages, one or more transformations of the plurality of transformations according to the determined order and the identified status; and
forwarding the message to a messaging system.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein the order of applying the plurality of transformations is specified by the migration file, wherein the migration file comprises one or more pointers to the one or more transformation files.

### Claim 16 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, further comprising:
performing one or more validations of the message prior to applying the plurality of transformations to the message.

### Claim 17 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein forwarding the message to the messaging system comprises:
identifying a first messaging system from which the message was received; and
forwarding the message to the first messaging system.

### Claim 18 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein forwarding the message to the messaging system comprises:
identifying a first messaging system from which the message was received; and
forwarding the message to a second messaging system, wherein the second messaging system is different from the first messaging system.

### Claim 19 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein forwarding the message to the messaging system comprises:
identifying a first channel of a first messaging system from which the message was received; and
forwarding the message to the first channel of the first messaging system.

### Claim 20 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein forwarding the message to the messaging system comprises:
identifying a first channel of a first messaging system from which the message was received; and
forwarding the message to a second channel of the first messaging system, wherein the second channel is different from the first channel.
