Extensible Event Bus With Multi-Language Code Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The process of developing and updating event-driven instruction codes in a distributed environment is complex and time-consuming due to the need for careful planning of data schema, editing multiple files, and synchronizing event schema specifications across distinct script languages, leading to increased development time and error-prone processes.
Innovation Solution
An event type register that automatically generates event schema and scripts in multiple programming languages, simplifying the process by registering and maintaining event types in an event message streamer, reducing the complexity and time required for revising instruction codes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If event schema and scripts are manually defined and updated across multiple programming languages, then development flexibility and customization are improved, but development time and complexity increase significantly
Solution Approach 1:
The system enables self-service through automatic code generation. When an event schema is defined in a primary programming language, the system automatically generates corresponding scripts in multiple other programming languages without requiring manual intervention from developers. This self-service mechanism resolves the contradiction by eliminating the time-consuming manual translation process while preserving the ability to work with multiple languages.
Solution Approach 2:
The system performs preliminary action by pre-generating all necessary script files in multiple programming languages before the development process begins. The code generation system creates templates and boilerplate code in advance, so that when events need to be subscribed to or published in different languages, the foundational code structure is already in place, significantly reducing development time.
2Manufacturing precision
If event schema specifications are synchronized across distinct script languages manually, then code accuracy and consistency are improved, but the process becomes error-prone and time-consuming
Solution Approach 1:
The system introduces an intermediary code generation system that acts as a mediator between the event schema definition and the multiple programming language implementations. This intermediary automatically translates the schema into consistent code across Python, TypeScript, and other languages, eliminating manual synchronization errors while reducing process complexity through automation.
Solution Approach 2:
The system uses copying by generating identical code structures and logic across different programming languages through automated template instantiation. Instead of manually copying and adapting code, the system generates consistent implementations by copying the schema definition into language-specific templates, ensuring accuracy while simplifying the process.
3Ease of manufacture
If multiple programming language scripts are maintained separately for event processing, then language-specific optimization is improved, but maintenance burden and synchronization difficulty increase
Solution Approach 1:
The system applies segmentation by separating the event schema definition from the language-specific implementation details. The schema is defined once in a language-agnostic format, while the code generation system creates segmented, language-specific scripts that can be optimized independently. This segmentation allows language-specific optimization while reducing maintenance burden because changes to the schema automatically propagate to all language versions.
Data Source
AI summary
Systems and methods are provided for generating an event type and extending event message streaming. The generating an event type includes receiving event definition data. The disclosed technology includes an event type generator that generates scripts in a variety of languages for processing an event of the event type and event dictionary data including event schema associated with the event type. The event dictionary data represents a lightweight library package for merging into a micro service. The event type generator further registers the event type in an event message streamer thereby extending the event message streaming with the event type. The event message streamer provides an event bus that receives an event of the registered event type from a micro service for publishing. The event message streamer delivers the event in an event message to one or more micro services that subscribes to the event type for consuming.


