Skip to content

Push platform for realtime and bidirectional communication between clients and servers

License

Notifications You must be signed in to change notification settings

surajsahani/propeller

 
 

Repository files navigation

Propeller 𖣘

Coverage Go Report Card CHECKS GoDoc Stars

Propeller is an opinionated platform that enables realtime and bidirectional communication between frontend and backend clients.

The Need

While polling and REST-style request-response have been the dominant paradigms for client-server communication, they inherently come with limitations that can impact performance, scalability, and user experience.

  1. Increased Latency: Polling intervals often dictate the minimum latency for receiving updates, limiting real-time responsiveness.
  2. Resource Consumption: Each polling request requires server resources to process, even if there's no new data.
  3. Retry Storms: In case of widespread failures or degradations, a large number of clients may initiate retries simultaneously, overwhelming the server.
  4. Scalability Constraints: As the number of clients and polling frequency increase, server load can become a significant bottleneck.

Features

  1. Frontend Client can create a persistent channel with the backend.
  2. Backend services can send events to the frontend clients.
  3. Support for multiple devices for a client.
  4. Support for custom topics between frontend and backend.
  5. Easy integration with legacy REST based services.

Building Blocks

Propeller is built on top of the following battle-tested technologies to power realtime experiences:

  1. bi-directional gRPC: Propeller uses bi-directional streaming gRPC to establish a stream between the client and the server.
  2. Redis and NATS: Propeller supports Redis and NATS as brokers for the communication.
  3. Golang: Propeller uses the power of Golang to achieve high number of concurrent clients being connected.

Documentation

Please refer https://cred-club.github.io/propeller/ for further documentation on getting started, testing, design etc.

Talk

Talk on propeller at GopherCon India 2024

Talk on propeller at GopherCon India 2024

About

Push platform for realtime and bidirectional communication between clients and servers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 92.9%
  • Handlebars 4.5%
  • Makefile 2.3%
  • Dockerfile 0.3%