wtf
memberlist
Our great sponsors
wtf | memberlist | |
---|---|---|
48 | 8 | |
1,475 | 3,494 | |
- | 1.0% | |
0.0 | 5.1 | |
over 1 year ago | 29 days ago | |
Go | Go | |
MIT License | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wtf
-
Help with setting up Ben Johnson's wtf repo locally
I am new to go. Found wtf dial - ( https://github.com/benbjohnson/wtf ) while looking to get some project based learning. This looks pretty interesting but when I did git clone of the project my vs code is giving number dependency related problems like below.
-
Educational Codebases
There are a few Go projects meant to be learned from:
- https://github.com/pion/opus for to learn audio
- https://github.com/benbjohnson/wtf for overall production quality
- https://github.com/upspin/upspin difficult to explain, personally I'm not a fan of the errors
- Ben Johnson's WTF project layout: interface usage
- Exemple of Web API written in Go that you'd consider high quality
-
Directory structure for a golang project
I read about https://github.com/benbjohnson/wtf and the connected blog here a couple of times. Seems quite good.
- Project structure - I often see duplicate function names in db layers, why?
-
The one-and-only, must-have, eternal Go project layout
Personally I think the method is the layered architecture approach. Example: https://github.com/benbjohnson/wtf
-
Examples of Good Go Repos
Take a look at the discussions in the repo: https://github.com/benbjohnson/wtf/discussions
-
Examples of an idiomatic API project
https://github.com/benbjohnson/wtf This repo serves as an example and fits Go very well in my opinion. Check the discussions on the repo and the blog posts.
- what do you use for migrations? or how do you the sql tables and seeding?
memberlist
- library for gossip coordination
-
Is it possible to have more than 1 master available for writes in a raft system?
I use lightweight https://github.com/hashicorp/memberlist to build initial cluster skeleton (find out what are nodes constituting it)
-
Leaderless consensus protocol in the wild
Does https://github.com/hashicorp/memberlist count? It’s a gossip-based eventual consistency protocol based on SWIM.
-
What sort of mature, open-source libraries do you feel Rust should have but currently lacks?
An equivalent of golang's memberlist would be awesome.
-
What's the biggest outage you have ever caused?
I don't know the engineer that did it but I know what happened. There's a library that a bunch of foundational Amazon services use called DFDD. It uses a gossip protocol to handle service discovery and health checking. The open source equivalent is Hashicorp memberlist. To remove a node from the cluster, you have to send a command to an arbitrary node that says a node is dead.
-
Service discovery library in Rust?
serf uses memberlist which uses the SWIM failure detection protocol (https://www.cs.cornell.edu/projects/Quicksilver/public_pdfs/SWIM.pdf) with the Lifeguard extensions (https://arxiv.org/pdf/1707.00788.pdf).
-
Ask HN: Which are the best go repositories to read to learn the language?
https://github.com/hashicorp/memberlist
Fairly idiomatic/clean
-
A Spanner-based distributed locking library
This algorithm assumes you're doing that separately using some sort of membership protocol (e.g. SWIM), and you pass in the membership list that you are keeping up to date with that protocol. If you're curious about those, HashiCorp memberlist and HashiCorp Serf are really good to look at. I believe Consul uses those libraries under the hood.
What are some alternatives?
go-clean-arch - Go (Golang) Clean Architecture based on Reading Uncle Bob's Clean Architecture
rust - Official implementation of the IPGen Spec in Rust
pkgsite - [mirror] Home of the pkg.go.dev website
hashring - Consistent hashing "hashring" implementation in golang (using the same algorithm as libketama)
Golang-Project-Structure - Golang Skeleton With Fully Managed Versions For Kick Start GoLang Project Development
spindle - A distributed locking library built on top of Cloud Spanner and TrueTime.
bbolt - An embedded key/value database for Go.
LiteDB - LiteDB - A .NET NoSQL Document Store in a single data file
go-clean-template - Clean Architecture template for Golang services
pjproject - PJSIP project
go-webapp-example - Example web application written in Go
futures-rs - Zero-cost asynchronous programming in Rust