Comments (3)
Here is a proposed interface for Configuration
.
// Configuration represents a static set of nodes on which quorum remote
// procedure calls may be invoked.
type Configuration interface {
Nodes() []*Node
Size() int
NewQuorumSpec() QuorumSpec
}
The NewConfiguration
method should return the generated struct (not the interface), since then the interface does not need to contain the RPCs generated from the proto file.
The main issue is how can we access the QuorumSpec
; we need generics.
from gorums.
Finally started to look into this. Sounds reasonable to me. I think it would be very useful if we can make the Manager
and Configuration
interfaces be part of the public API of Gorums, so that these interfaces need not be generated. This can also allow us to create helper functions, e.g. test helpers, for setting up Gorums.
from gorums.
When reviewing a PR a while back I noticed that we don't actually use the Nodes()
method, nor the NodeIDs()
method from within Gorums itself. The question is whether or not one or both of these methods will be useful as part of this interface.
from gorums.
Related Issues (20)
- Decouple Node from channel to avoid two-way reference HOT 2
- Improve release automation with goreleaser
- Replace deprecated grpc.WithInsecure()
- QSpec objects versus passing quorum functions as arguments HOT 4
- Provide timeout and retry options to the NewConfiguration method
- Configurable network latencies in the configuration HOT 2
- Update user-guide.md to link to method-options.md
- feat: generic datatype for node ID HOT 1
- bug: RawNode.RPCCall returns nil instead of error
- ci: Update GitHub Actions versions to fix failing CI workflows
- deps: upgrade golang and dependency versions
- doc: gorums.NewServer claims to be for internal use
- thinking: Consider whether or not to use the WithBlock dial option HOT 1
- fix: rework the context object in gRPC calls HOT 1
- feat: Generate ServiceNameClient interface akin to gRPC's plugin
- chore: rename channel.sendMsgs
- Add example projects mainly as documentation of Gorums features
- bug: race condition when accessing configuration from separate goroutines HOT 2
- chore: update errors to follow better style and use the %w verb HOT 1
- bug: incorrect unblock behavior when using `WithNoSendWaiting` call option HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gorums.