Schema management using an event stream
AssigneeIEX Group, Inc.
InventorRobert Park
Life of this patent
Estimating the term…
Abstract
In a message processing system, an application connected to an event stream publishes a schema for the structure of data payloads contained in messages from the application. Other readers and writers within the system can receive the schema and apply the schema to subsequent inbound and/or outbound messages as appropriate. The application may from time to time dynamically update the schema and publish a revised schema for use by the other applications connected to the event stream for subsequent messages.
Claims29
A method comprising:
- reading sequenced messages from an event stream, the sequenced messages having globally unique sequence numbers within the event stream;
- processing the sequenced messages with an application to provide a first number of unsequenced messages responsive to the sequenced messages, wherein the application generates messages using a first schema identified by a first schema identifier;
- writing the first number of unsequenced messages to the event stream without globally unique sequence numbers using a first data structure specified by the first schema;
- revising the first data structure to provide a second data structure specified by a second schema;
- writing a schema change message to the event stream with a second schema identifier that identifies the second schema;
- and
- after writing the schema change message to the event stream and receiving a sequenced version of the schema change message on the event stream, writing a second number of unsequenced messages to the event stream using the second data structure specified by the second schema.
A computer program product comprising computer executable code embodied in a nontransitory computer readable medium that, when executing on one or more computing devices, updates schemas used in messages among users of an event stream by performing the steps of:
- reading sequenced messages from the event stream, the sequenced messages including sequence numbers;
- processing the sequenced messages with an application to provide a first number of unsequenced messages responsive to the sequenced messages, wherein the application generates messages using a first schema identified by a first schema identifier;
- writing the first number of unsequenced messages to the event stream without sequence numbers using a first data structure specified by the first schema, each unsequenced message including a digital signature for authenticating the application;
- revising the first data structure to provide a second data structure specified by a second schema;
- writing a schema change message to the event stream with a second schema identifier that identifies the second schema;
- and
- after writing the schema change message to the event stream and receiving a sequenced version of the schema change message on the event stream, writing a second number of unsequenced messages to the event stream using the second data structure specified by the second schema.
A computing system comprising:
- at least one processor;
- and
- a memory coupled with the processor, wherein the processor executes a message processing system stored in the memory, the message processing system comprising:
- a sequencer that receives unsequenced messages from users of an event stream, arranges the unsequenced messages into sequenced messages having a global sequence in the event stream, and publishes the sequenced messages to the event stream;
- and
- an application coupled in a communicating relationship with the event stream and the sequencer, the application including a writer configured to publish one or more of the unsequenced messages, a reader to read the sequenced messages from the event stream, and a processing engine that sends a first message to the event stream containing a description of a schema that specifies a structure for data in one or more other messages published by the writer of the application,
- wherein the application receives one or more of the sequenced messages from a second application coupled to the event stream, determines a second schema used by the second application based on schema information for the second application in the event stream, and processes the sequenced messages from the second application according to the second schema.
A computing system comprising:
- at least one processor;
- and
- a memory coupled with the processor, wherein the processor executes a message processing system stored in the memory, the message processing system comprising:
- a sequencer that receives unsequenced messages from users of an event stream, arranges the unsequenced messages into sequenced messages having a global sequence in the event stream, and publishes the sequenced messages to the event stream;
- and
- an application coupled in a communicating relationship with the event stream and the sequencer, the application including a writer configured to publish one or more of the unsequenced messages, a reader to read the sequenced messages from the event stream, and a processing engine that sends a first message to the event stream containing a description of a schema that specifies a structure for data in one or more other messages published by the writer of the application,
- wherein the application is configured to change the schema to a second schema and to publish a schema update message to the event stream notifying other users of the event stream of the second schema.
A method comprising:
- generating a first number of unsequenced messages with an application using a first schema identified by a first schema identifier;
- writing the first number of unsequenced messages to an event stream without globally unique sequence numbers for the event stream using a first data structure specified by the first schema;
- revising the first data structure to provide a second data structure specified by a second schema;
- writing a schema change message to the event stream with a second schema identifier that identifies the second schema;
- and
- after receiving a sequenced version of the schema change message from a sequencer for the event stream, writing a second number of unsequenced messages to the event stream using the second data structure specified by the second schema.
Dependencies are inferred from the claim text.