Peter Bourgon discusses his work at Weaveworks, discovering and imlemeting CRDTs for time-stamped events at Soundcloud, Microservices in Go with Go Kit and the state of package management in Go.
Why listen to this podcast:
- We’ve hit the limits of Moore’s law so when we want to scale we have to think about how we do communication across unreliable links between unreliable machines.
- In an AP algorithm like Gossip you still make forward progress in case of a failure. In Paxos you stop and return failures.
- CRDTs give us a rigours set of rules to accommodate failures for maps, sets etc. in communication that result in am eventually consistent system.
- Go is optimised to readers/maintainers vs. making the programmers’ life easier. Go is closer to C than Java in that it allows you to layout memory very precisely, allowing you to, for example, optimise cache lines in your CPU.
- Bourgon started a project called Go Kit, which is designed for building microservices in Go. It takes inspiration from Tiwtter’s Scala-based Finagle which solved a lot of Micoservice concerns.
- Go has a number of community-maintained package managers but no good solution; work in ongoing to try and resolve this.
Notes and links can be found on: http://bit.ly/2kaHC9k
Work at Weaveworks
Gossip vs. Paxos
CRDTs at SoundCloud
Go in large teams
Go and Java package management
Microservices in Go with Go Kit
Logging and tracing in a distributed environment
More on this:
Quick scan our curated show notes on InfoQ. http://bit.ly/2kaHC9k
You can also subscribe to the InfoQ newsletter to receive weekly updates on the hottest topics from professional software development. bit.ly/24x3IVq