Hein Meling

Results 196 issues of Hein Meling

This PR introduces a significant architectural shift for Gorums, moving towards a more flexible, interceptor-based design and adopting modern Go iterator patterns. These changes simplify the codebase, improve type safety,...

We currently use a `sync.RWMutex` in our [channel implementation](https://github.com/relab/gorums/blob/691cd1b9b6c2787091919db485f6389dd443106b/channel.go#L49). However, it is not clear that this is beneficial, given the extra overhead vs the regular mutex. We should benchmark with...

question

Mostly edits on top of multiparty-update branch. - **refactor: update signature handling to use getter methods** - **refactor: update message metadata handling to use getter methods** - **refactor: update metadata...

Would it make sense to rename `ManagerOption` to `ClientOption` and similarly for other `Manager` related stuff... I am unsure, but connecting it with the "client" side of things would make...

question
thinking

See issue #212. This code snippet from `server.go:NodeStream`: ```go for { req := newMessage(requestType) err := srv.RecvMsg(req) if err != nil { return err } ``` May return this error:...

invalid
thinking

Three days of debugging (and rewriting) leads me to write this. We should create a troubleshooting guide with some common (and uncommon) pitfalls when dealing with Gorums, protobuf, and gRPC....

doc

This is part of generated code: ```go // ConfigurationFromRaw returns a new Configuration from the given raw configuration and QuorumSpec. // // This function may for example be used to...

enhancement

The current version of NewConfiguration takes only a single variadic whose type is an empty interface. This makes the code fragile and it can break at runtime if passed an...

enhancement
thinking

We currently don't do any graceful shutdown for our quorum calls and other call types. We should support [graceful shutdown](https://grpc.io/docs/guides/server-graceful-stop/).

enhancement
thinking

This does not work as expected because `QuorumCallError` does not implement the `Is` and `As` methods. ```go // Assume err is a gorums.QuorumCallError if errors.Is(err, context.DeadlineExceeded) { // handle deadline...

bug
invalid