Leipzig Gophers
blog

🔗Second meetup wrap-up

Our second meetup took place yesterday (2019-03-15) at Basislager Leipzig, here’s a short wrap-up:

  1. 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.

  2. 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.

  3. 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

Concurrency bugs

Worker pools

Misc

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 :)