Project details
Relay is designed to streamline the development of declarative apps with its event-driven architecture. It supports serverless functions and scheduled tasks while maintaining persistent services. With easy integration and isolation of runtimes, Relay enhances productivity in managing external events and workloads seamlessly.
Relay is an event-driven runtime designed for building declarative applications that utilize serverless functions, schedules, and persistent services. It operates on infrastructure under user control, ensuring greater flexibility and reliability in execution.
This platform excels at executing short-lived functions within isolated runtimes, facilitating the publishing of scheduled events alongside external occurrences to a unified Redis Stream and consumer group. Relay continuously reconciles long-running services based on a shared declarative model without necessitating their involvement in the event pipeline.
Relay's architecture encompasses two primary workloads:
Events flow seamlessly through Relay as follows:
Producer → Redis Stream → Relay → App → Function (handler)
Event classifications and retries are managed within a consistent infrastructure to ensure reliability and performance. Relay smartly distinguishes between events and scheduled occurrences, streamlining the execution process for efficient handling of workloads.
To get started with Relay, you need:
Simply use the bundled compose.yaml to launch Relay alongside Redis and deploy your apps. Functions and services can then be declared and executed directly, with a shared model facilitating seamless integration.
Relay emphasizes a distinct separation between function invocations and service convergence, allowing developers to start with simple functions and scale to more complex services as needed. This adaptability makes it particularly useful for modern application development, where event-driven architectures and persistent workloads must coexist harmoniously.
Comments
0Start the conversation
Share the first comment.