micro/store/service/proto/store.proto
Jake Sanders 1b4e881d74
Rewrite the store interface (#1335)
* WIP store rewrite

* Fix memory store tests

* Store hard expiry times rather than duration!

* Clarify memory test

* Add limit to store interface

* Implement suffix option

* Don't return nils from noop store

* Fix syncmap

* Start fixing store service

* wip service and cache

* Use _ for special characters in cockroachdb namespace

* Improve cockroach namespace comment

* Use service name as default store namespace

* Fixes

* Implement Store Scope

* Start fixing etcd

* implement read and write with expiry and prefix

* Fix etcd tests

* Fix cockroach store

* Fix cloudflare interface

* Fix certmagic / cloudflare store

* comment lint

* cache isn't implemented yet

* Only prepare DB staements once

Co-authored-by: Ben Toogood <ben@micro.mu>
Co-authored-by: ben-toogood <bentoogood@gmail.com>
2020-03-12 13:41:30 +00:00

75 lines
1.2 KiB
Protocol Buffer

syntax = "proto3";
package go.micro.store;
service Store {
rpc Read(ReadRequest) returns (ReadResponse) {};
rpc Write(WriteRequest) returns (WriteResponse) {};
rpc Delete(DeleteRequest) returns (DeleteResponse) {};
rpc List(ListRequest) returns (stream ListResponse) {};
}
message Record {
// key of the record
string key = 1;
// value in the record
bytes value = 2;
// time.Duration (signed int64 nanoseconds)
int64 expiry = 3;
}
message ReadOptions {
bool prefix = 1;
bool suffix = 2;
uint64 limit = 3;
uint64 offset = 4;
}
message ReadRequest {
string key = 1;
ReadOptions options = 2;
}
message ReadResponse {
repeated Record records = 1;
}
message WriteOptions {
// time.Time
int64 expiry = 1;
// time.Duration
int64 ttl = 2;
}
message WriteRequest {
Record record = 1;
WriteOptions options = 2;
}
message WriteResponse {}
message DeleteOptions {}
message DeleteRequest {
string key = 1;
DeleteOptions options = 2;
}
message DeleteResponse {}
message ListOptions {
string prefix = 1;
string suffix = 2;
uint64 limit = 3;
uint64 offset = 4;
}
message ListRequest {
ListOptions options = 1;
}
message ListResponse {
reserved 1; //repeated Record records = 1;
repeated string keys = 2;
}