# README
Simple Go Application for YugabyteDB
The application connects to your YugabyteDB instance via
Go PostgreSQL driver and performs basic SQL
operations. The instructions below are provided for YugabyteDB Aeon deployments.
If you use a different type of deployment, then update the sample-app.go
file with proper connection parameters.
Prerequisites
- Go version 1.17.6 or later is preffered. Earlier versions should work as well.
- Command line tool or your favourite IDE, such as Visual Studio Code.
Start YugabyteDB Aeon Cluster
- Start YugabyteDB Aeon instance. Free tier exists.
- Add an IP address of your machine/laptop to the IP allow list
Clone Application Repository
Clone the application to your machine:
git clone https://github.com/YugabyteDB-Samples/yugabyte-simple-go-app.git && cd yugabyte-simple-go-app
Provide Cluster Connection Parameters
The application needs to establish a secured connection to your YugabyteDB Aeon instance.
Open the sample-app.go
file and specify the following configuration parameters:
host
- the hostname of your instance.port
- the port number of your instance (the default is5433
).dbUser
- the username for your instance.dbPassword
- the database password.sslMode
- the SSL mode. Set toverify-full
for YugabyteDB Aeon deployments.sslRootCert
- a full path to your CA root cert (for example,/Users/dmagda/certificates/root.crt
)
Note, you can easily find all the settings on the YugabyteDB Aeon dashboard:
Build and Run Application
- Initialize the
GO111MODULE
variable:export GO111MODULE=auto
- Import the Go PostgreSQL driver:
go get github.com/lib/pq
- Run the application:
go run sample-app.go
Upon successful execution, you will see output similar to the following:
>>>> Successfully connected to YugabyteDB!
>>>> Successfully created table DemoAccount.
>>>> Selecting accounts:
name = Jessica, age = 28, country = USA, balance = 10000
name = John, age = 28, country = Canada, balance = 9000
>>>> Transferred 800 between accounts.
>>>> Selecting accounts:
name = Jessica, age = 28, country = USA, balance = 9200
name = John, age = 28, country = Canada, balance = 9800
Explore App Logic
Congrats! You've successfully executed a simple Go app that works with YugabyteDB.
Now, explore the source code of sample-app.go
:
main
function - establishes a connection with your cloud instance via Go PostgreSQL driver.createDatabase
function - creates a table and populates it with sample data.selectAccounts
function - queries the data with SQLSELECT
statements.transferMoneyBetweenAccounts
function - updates records consistently with distributed transactions.
Questions or Issues?
Having issues running this application or want to learn more from Yugabyte experts?
Join our Slack channel,
or raise a question on StackOverflow and tag the question with yugabytedb
!