Client-Side GraphQL Schema for Kafka Stream Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data streaming platforms do not allow for client-side definition or specification of streaming requirements without engaging server-side functionality or deploying serverless containers, limiting the ability of web and mobile client applications to control data streaming processes.

Innovation Solution

Implementing a client-side data streaming solution using GraphQL to define functions and rules for mapping topics, transforming them into computable data streams, and utilizing a stream processor registry to execute these definitions, allowing for dynamic creation and filtering of user-specific topics based on offset, filtering, and aggregation rules.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If server-side functionality or serverless containers are used to define streaming requirements, then data streaming processes can be controlled, but system complexity and deployment requirements increase

Engineering Contradiction:
Improveclient-side control capabilityVSAvoidsystem architecture complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces GraphQL as an intermediary layer between the client and the Kafka streaming platform. GraphQL schemas defined on the client side act as intermediaries that translate client requirements into stream processing configurations, eliminating the need for direct server-side control while maintaining full functionality. This mediator approach allows clients to control streaming processes without directly engaging complex server-side infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent enables client-side self-service by allowing applications to define their own streaming requirements through GraphQL schemas without requiring server-side intervention or deployment of serverless containers. The client independently configures topic mappings, filtering rules, and aggregation logic, making the system self-sufficient and reducing overall architectural complexity.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If fixed server-side streaming pipelines are implemented, then data processing is reliable, but adaptability to different client requirements is limited

Engineering Contradiction:
Improvestreaming requirement flexibilityVSAvoiddata processing reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent transforms fixed server-side streaming pipelines into dynamic, client-configurable streams through GraphQL. Clients can dynamically define and modify streaming requirements by updating their GraphQL schemas, which automatically translate into new stream processing configurations. This dynamic approach maintains reliability through structured schema validation while providing unlimited adaptability to different client needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent enables adaptability by allowing clients to change streaming parameters (filtering criteria, aggregation rules, topic mappings) through GraphQL schema modifications. These parameter changes are translated into corresponding stream processing configurations, allowing the system to adapt to different requirements while maintaining consistent processing reliability through the structured GraphQL interface.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If client applications directly control data streaming, then customization is maximized, but the requirement for server-side support increases

Engineering Contradiction:
Improvedata stream customizationVSAvoidserver-side infrastructure requirement
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the control functionality from the server side and places it directly on the client side through GraphQL schemas. Clients extract and define their own streaming requirements, filtering logic, and aggregation rules locally, eliminating the need for server-side control infrastructure. This extraction maximizes customization while reducing server-side complexity to merely executing client-defined configurations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent makes GraphQL schemas universal by designing them to handle multiple streaming functions (topic mapping, filtering, aggregation, transformation) within a single client-side configuration framework. This multi-functional approach allows client applications to control all aspects of data streaming customization without requiring specialized server-side support for each function, reducing overall infrastructure complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11757959B2Dynamic data stream processing for Apache Kafka using GraphQL
Publication Date: 2023.09.12 RED HAT LLC
  • US11757959B2 patent drawing
  • US11757959B2 patent drawing
  • US11757959B2 patent drawing

AI summary

Systems and methods for specifying a stream processing topology via a client-side API without server-side support. A schema may be generated by a client-side application using a query language and transmitted to a stream processor registry, wherein the schema defines a desired data stream. The stream processor registry, acting as a server-side run time corresponding to the query language, may store the schema as metadata. The stream processor registry may generate a stream processing topology based on the metadata to obtain data relevant to the data stream and generate a user-specific topic comprising the data relevant to the data stream. The stream processor registry may filter the data relevant to the data stream based a subscription call by the client to generate a target topic comprising portions of the data relevant to the data stream.