Skip to content

Commit

Permalink
README: update project description (#34)
Browse files Browse the repository at this point in the history
  • Loading branch information
achille-roussel authored Jun 2, 2024
2 parents 40d559c + 3a9776c commit e741232
Showing 1 changed file with 18 additions and 12 deletions.
30 changes: 18 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
[![Build](https://github.com/dispatchrun/dispatch-proto/actions/workflows/buf.yml/badge.svg)](https://github.com/dispatchrun/dispatch-proto/actions/workflows/buf.yml)
[![Docs](https://img.shields.io/badge/API-reference-lightblue.svg)](https://buf.build/stealthrocket/dispatch-proto/docs/main:dispatch.sdk.v1)

This module contains the protobuf definitions to integrate with the Dispatch
platform.
This module contains the protobuf definitions to integrate with Dispatch.

[connectrpc]: https://connectrpc.com/
[grpc]: https://grpc.io/
Expand All @@ -29,11 +28,19 @@ platform.

## What is Dispatch?

Dispatch is a platform to develop reliable distributed systems. Dispatch
provides a simple programming model based on durable coroutines to manage the
scheduling of function calls across a fleet of service instances. Orchestration
of function calls is managed by Dispatch, providing **fair scheduling**,
transparent **retry of failed operations**, and **durability**.
Dispatch is a cloud service for developing scalable and reliable applications,
including:

- **Event-Driven Architectures**
- **Background Jobs**
- **Transactional Workflows**
- **Multi-Tenant Data Pipelines**

Dispatch differs from alternative solutions by allowing developers top write
simple Python code: it has a **minimal API footprint**, which usually only
requires using a function decorator (no complex framework to learn), failure
recovery is built-in by default for transient errors like rate limits or
timeouts, with a **zero-configuration** model.

To interact with the Dispatch scheduler, the client SDK uses this module to
generate [connectrpc][connectrpc] or [gRPC][grpc] clients and servers.
Expand All @@ -53,9 +60,8 @@ To obtain an API key, follow the instructions to [sign up for Dispatch][signup]

## Dispatching Calls to Functions

The dispatch service is the frontend to the platform. Clients can submit calls
to functions implemented in their application, using the
[`dispatch.sdk.v1.DispatchService/Dispatch`][rpc-dispatch] method.
Clients can submit calls to functions implemented in their application, using
the [`dispatch.sdk.v1.DispatchService/Dispatch`][rpc-dispatch] method.

The request contains the list of calls that will be performed asynchronously by
the scheduler.
Expand All @@ -71,8 +77,8 @@ The scheduler will make the function calls that were submitted via the API.
### Verification of Function Calls

When calling functions, requests are signed using asymmetric key pairs. The private
key is stored on the Dispatch platform, and the server uses the private key to
verify the signature of requests it receives.
key is stored by Dispatch, and the server uses the private key to verify the
signature of requests it receives.

The signature mechanism uses the [HTTP Signatures IETF Draft][http-signatures],
with the following signing fields:
Expand Down

0 comments on commit e741232

Please sign in to comment.