Event Proxy for Cross-Cloud FaaS State Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Functions-as-a-Service (FaaS) infrastructure in private clouds lacks the ability to leverage external services for persistent state access and management, as they do not have a common event bus with public clouds, making it difficult for functions to implement stateful operations.
Innovation Solution
Implementing event proxies that can receive events from external services in separate clouds, translate them into a format understood by the FaaS infrastructure, and place them on a local event bus, allowing functions to be invoked and consume events across different cloud environments, thereby acting as a bridge between distinct computing clouds.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If functions run on a private cloud-based FaaS infrastructure, then the infrastructure can be owned and operated by a single organization for sole use, but the functions cannot leverage external services for persistent state access and management
Solution Approach 1:
The patent introduces an event proxy as an intermediary component that bridges the private cloud FaaS infrastructure and external services in public clouds. The event proxy receives events from external services, translates them into a format understood by the FaaS infrastructure, and makes them available to functions, thereby enabling persistent state access without direct integration between the private cloud and external services
Solution Approach 2:
The system segments the event handling architecture by separating the event proxy (which handles external service communication) from the FaaS infrastructure (which executes functions). This segmentation allows the private cloud to maintain its isolation while still accessing external services through the proxy's translation and adaptation layer
2Productivity
If functions are instantiated and run on any host in a FaaS infrastructure, then the infrastructure can scale independently, but there is no guarantee that local state created by one instance will be available to another instance
Solution Approach 1:
The event proxy acts as a mediator that external services use to communicate state changes to functions. Instead of relying on local instance state, functions subscribe to events published by external services through the proxy, ensuring that state information is reliably delivered regardless of which host instantiates the function
Solution Approach 2:
The system moves state management from the local dimension (instance-specific memory and disk) to an external dimension (cloud-based services accessible via event bus). This dimensional shift allows state to persist independently of function instance location, enabling reliable state access across scaled instances
3Adaptability or versatility
If an event proxy translates events from a first format to a second format, then functions can consume events from external services, but the system must maintain multiple event format specifications
Solution Approach 1:
The event proxy serves as a format translation intermediary that converts events from external service formats into FaaS infrastructure formats. This centralized translation approach isolates format complexity within the proxy, allowing functions to interact with a standardized event format while the proxy handles the complexity of multiple external format specifications
Data Source
AI summary
Techniques for implementing event proxies in a Functions-as-a-Service (FaaS) infrastructure are provided. In one set of embodiments, a computer system implementing an event proxy can receive an event emitted by an event source, where the computer system is part of a first computing cloud including the FaaS infrastructure, and where the event source is a software service running in a second computing cloud that is distinct from the first computing cloud. The computer system can translate the event from a first format understood by the event source to a second format understood by a function scheduler of the FaaS infrastructure, where the function scheduler is configured to schedule execution of functions on hosts of the FaaS infrastructure. The computer system can then make the translated event available to the function scheduler.


