Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
kalabukdima committed Jul 7, 2023
1 parent fbda79e commit 6f40bf3
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
# State Manager
A service which allows streaming applications to store their state, partially
A service that allows streaming applications to store their state, partially
update it and rollback to previous versions.

[Confluence page](https://proxima-one.atlassian.net/wiki/spaces/DEV/pages/220430337/State+Manager+API)

## Usage
Basically, a state manager for the given app is a key-value storage of byte
arrays. Current values can be fetched and new values can be set (either one by
one or in batches). There is also support for rollbacks. After storing some
values, the user can create a checkpoint. Later, the user can rollback to any
existing checkpoint. All the key-value pairs will then be restored to the point
in time when the checkpoint was created. All the following checkpoints will be
dropped.
The user can also request old checkpoints to be removed to free some space.
dropped.\
Old checkpoints are automatically cleaned up with more fresh checkpoints being left than stale ones.

## Interface
Currently, the service only supports gRPC interface. Schema can be found
[here](https://github.com/proxima-one/state-manager/blob/master/proto/state_manager/state_manager.proto)
[here](/proto/state_manager/state_manager.proto)

## About etags
An `etag` is some string used to avoid concurrent modifications. The client receives an etag with every response and should provide it with the next request to the server. The server then checks that no modifications have happened since the moment of response with the corresponding etag. Read-only requests don’t require an etag.
Etags are independent across applications. Modifying requests to one application don’t affect the behavior of requests to another application.

0 comments on commit 6f40bf3

Please sign in to comment.