syntax = "proto3"; package cache; option go_package = "./proto;cache"; service Cache { rpc Get(GetRequest) returns (GetResponse) {} rpc Set(SetRequest) returns (SetResponse) {} rpc Delete(DeleteRequest) returns (DeleteResponse) {} rpc Increment(IncrementRequest) returns (IncrementResponse) {} rpc Decrement(DecrementRequest) returns (DecrementResponse) {} } // Get an item from the cache by key. If key is not found, an empty response is returned. message GetRequest { // The key to retrieve string key = 1; } message GetResponse { // The key string key = 1; // The value string value = 2; // Time to live in seconds int64 ttl = 3; } // Set an item in the cache. Overwrites any existing value already set. message SetRequest { // The key to update string key = 1; // The value to set string value = 2; // Time to live in seconds int64 ttl = 3; } message SetResponse { // Returns "ok" if successful string status = 1; } // Delete a value from the cache. If key not found a success response is returned. message DeleteRequest { // The key to delete string key = 1; } message DeleteResponse { // Returns "ok" if successful string status = 1; } // Increment a value (if it's a number). If key not found it is equivalent to set. message IncrementRequest { // The key to increment string key = 1; // The amount to increment the value by int64 value = 2; } message IncrementResponse { // The key incremented string key = 1; // The new value int64 value = 2; } // Decrement a value (if it's a number). If key not found it is equivalent to set. message DecrementRequest { // The key to decrement string key = 1; // The amount to decrement the value by int64 value = 2; } message DecrementResponse { // The key decremented string key = 1; // The new value int64 value = 2; }