9 min to complete
Previously, we saw how to interact with ScyllaDB using drivers like Java.
In this lesson, we will learn how to use Go Programming Language, also known as Golang.
Go is a source-available programming language designed at Google in 2007. It’s syntactically similar to C but with garbage collection, structural typing, memory safety, and communicating sequential processes style concurrency.
GoCQL is a ScyllaDB client for the GO language. GoCQLX is an extension to GoCQL that boosts developer productivity while not sacrificing query performance.
For a deep dive into using Go with ScyllaDB, check out this blog post.
Creating a Sample Golang Application
The sample application we will review is available on GitHub. We will connect to a ScyllaDB cluster, display the contents of the Mutant Catalog table, insert and delete data, and show the table’s contents after each action. We will first go through each section of the code used and then explain how to run the code in a Docker container that will access the ScyllaDB Mutant Monitoring cluster.
For this application, the main class is called main, and the code is stored in a file called main.go. It’s located here: scylla-code-samples/mms/go/cmd/goapp/main.go
We’ll start by reviewing the code, and afterward, you can run the code in the lab. In the application, we first need to import the driver for Go:
The driver provides the ability to connect to the cluster and perform different queries.
After the class is defined, we define which cluster and keyspace to use, and we connect to the cluster:
To display the data, we will need to create a function that will run a SELECT statement from the ScyllaDB cluster. This function is defined in the file scylla-code-samples/mms/go/internal/scylla/query.go
The function performs the SELECT query and prints the data using the logger:
The next function is used to insert a new Mutant into the Mutant Catalog table. This function is defined in the file main.go as well.
After the data is added, we call on the SelectQuery function again to ensure the data was actually added.
After the data is added and displayed in the terminal, we will delete it and then display the table’s contents again. The deleteQuery is also defined in the file main.go:
Now we execute the SelectQuery function again to make sure that the data was deleted.
With the coding part done, let’s set up the ScyllaDB Cluster and run the sample application.
Conclusion
This lesson explained how to create a sample Golang application that executes a few basic CQL statements with a ScyllaDB cluster using the GoCQL driver. These are only the basics, and there are more exciting topics that Division 3 wants developers to explore. The following lessons will teach more advanced topics using Go and ScyllaDB.
In the meantime, please be safe and continue monitoring the mutants!