Databases have traditionally been the domain of C and C++ because of their need to squeeze every last clock cycle out of a system. But writing a whole database in C is not for the faint of heart. Luckily, we don't need to.
In this talk, I'll describe why I chose Go to write SkyDB, an open source behavioral analytics database, and some of the design choices that go into high performance Go code. We'll look at pure Go optimizations in stream processing and data access. We'll also look at integrating with cgo and external JIT tools to optimize the most performance critical code. And finally, we'll look at how to utilize Go to distribute processing across multiple cores and multiple machines.
From Node.js to Go discusses the wins and pain points when switching from a majority Node.js codebase to a majority Go codebase. I will discuss the pragmatic framework we used to make the decision to switch and the outcomes related to our experience having a 90% Go backend.
NSQ is a realtime distributed messaging platform, built entirely in Go, that promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee.
It was built to support bitly's data engineering systems and has continued to grow in adoption to power infrastructure at Path, Hailo, Life360, Trendrr, Simplereach, and others. It is a vibrant member of the Go open source community.
Building easy-to-operate, large scale, high volume distributed systems for production tends to present unique and interesting problems that stretch ones assumptions.
This talk is the product of our experience developing NSQ and operating Go services in production.
It covers the evolution of bitly's infrastructure to the design and implementation of NSQ, a match made in heaven for Go. This includes the challenge of optimizing a garbage collected language, managing those pesky goroutines, and a healthy dose of distributed systems.
As developers, our day is spent interacting with command line applications in the terminal. Originally these tools were written in C or C++. Of late, there has been a move to languages such as Ruby, Python or Java as a way ease development of these command line applications. This move has come with increased cost to the end users in the form of OS incompatibilities or runtime interpreters that they needed to install.
What if you could get the ease of development without the increased cost? This talk will make the case that Go is a viable replacement for writing these command line tools. It will present real life lessons learned from the rewrite of the Cloud Foundry CLI tool from Ruby to Go. It will also show patterns that the team used to make the tool easy to test and understand from both the UI and the API interaction layers. It will finally show how to cross compile dependency free, statically linked binaries so that you can provide the users of your tool with one standalone binary to run.
If you are tired of sacrificing ease of end use for ease of development in command line tools, this talk is for you.
Camlistore is your personal storage system for life. It's one of the oldest large Go programs, developed in concert with the Go standard library from June 2010 until present, and has had many gophers hack on it. It's seen and helped shaped the standard library from before r56 to r60, to Go 1 (the first stable release in March 2012), 1.1, 1.2, and 1.3. Hear about Camlistore's goals, see it in action, see fun code, and hear some of the Go standard library history.
It's time for the Go compilers to be written in Go, not in C. I'll talk about the unusual process the Go team has adopted to make that happen: mechanical conversion of the existing C compilers into idiomatic Go code.
Announcement of the winners of the Go QML Contest.
Find out why some people claim Go and MongoDB are a "pair made in heaven" and "the best database driver they've ever used" in this talk by Gustavo Niemeyer, the author of the mgo driver, and Steve Francia, the drivers team lead at MongoDB Inc.
Go is a simple language. Sometimes, that simplicity means that common, peripheral tasks are deferred to other tools to solve. This talk will explore some of the questions that we've asked ourselves at SoundCloud about writing, building, deploying, running, and maintaining Go code in a production environment, focusing on the areas where the Go ecosystem doesn't offer clear guidance. We also hope to provide at least a few answers.
Big data and analytics is becoming incredibly important as information on people and their lives become more readily available. Companies are looking for ways to acquire, store and process personal information on their users to help provide intuitive experiences and sell products or services. Using Go and Mongo, you can build these analytic engines with all the flexibility, scalability and performance you need. In my talk I will show how you can leverage Go and MongoDB to load customer data and both public or personal offer feeds at runtime. Then using a simple Go based web tool and service, build rules to identify products and services your customers will want.