Our second meetup took place yesterday (2019-03-15) at Basislager Leipzig, here’s a short wrap-up:
-
miku gave a lightning talk about generating Go structs from JSON and XML documents, e.g. via JSONGen or zek. Code generation is not perfect, but can save you time.
-
Michael presented the paper Understanding Real-World Concurrency Bugs in Go, which compares bug classes by analyzing popular open source projects like BoltDB, etcd, Docker and Kubernetes. Did you know that some concurrency bugs stay undetected for months, even years? While message passing does not make multithreaded programs less-error prone, it can still offer a clean form of inter-thread communication.
-
Staying on the topic of concurrency, we reviewed a classic, concurrent producer-consumer problem, translated into Go by Michael. In less than 150 lines of code is it possible to write an auto-scaling worker-pool with retries that is using Redis as backing store. An alternative to spawning goroutines for every task is to feed a fixed number of workers through a channel (where work is distributed round-robin to workers). Both designs work, but we were unsure about some performance implications - we’ll briefly report on new findings at the next meetup.
Apart from these topics, Go and Cloud-Native topics offer plenty of room for discussions: the field is moving fast, while a popular implementation language for CN projects - Go - stays boring:
Changes to the language
There are no changes to the language specification.
If you have an idea for a lightning talk or presentation, or if you already use Go or Cloud-Native technologies, we love to hear real-world insights, just ping us on meetup, github or via e-mail.
Thanks for dropping by!
🔗 References
Code generation
- JSON, JSONGen, online version, json-to-go
- XML, zek, online version, xmltogo
Concurrency bugs
- Lightning Talk Slides
- Understanding Real-World Concurrency Bugs in Go (2019)
- Book recommendation: Concurrency in Go (2017)
Worker pools
Misc
- Go package management - we plan to have a Go modules deep dive at the April 2019 meetup.
- Meeting forms: lean coffee.
- Video: GOTO 2018 • Old Is the New New • Kevlin Henney (2018) - Fundamentals.
- Channel: computerphile - Videos all about computers and computer stuff. Sister channel of Numberphile.
Now defunkt company Basho, creators of database technology (RIAK) had a format, similar to papers we love, but their video recordings seem to be lost. If you have happen to have a copy, please consider contacting us :)
- A classic tool: sed – a stream editor (1974).
- Book recommendation: Designing Data-Intensive Applications (2017); avro; Pat Helland, author of Building on Quicksand (2009).