Below you will find pages that utilize the taxonomy term “Golang”
why use the go programming language?
I have been a go programmer before go 1.0 was released, I think that brings me back to beginning writing go code around 2011. as en exercise I wrote a simple daemon to handle some backend work where concurrency was key and have enjoyed developing it for quite some time. It replaced a python process where many actors needed to operate on a workqueue. This daemon is actually still in produciton today =P
git-watch
git watch is a simple library and CLI tool for monitoring git repositories and triggering events (restart process) when they change.
git watch [1] was designed as a way to easily build and deploy daemons in development when upstream changes. The changes can be either code (in git) or configuration.
So here is a simple example which will automatically rebuild and restart a application when you git push (https://github.com/sigmonsays/git-watch/tree/master/examples/go)
Below in git-watch.yaml we check the upstream every 5 seconds and merge the master branch in. execcmd is “my_application” which is a simple application. When a upstream change is detected, we invoke the updatecmd. If the updatecmd does not succeed, the restart process is aborted. Assuming the update command succeeds, we then invoke the install command. After the install command succeeds, the application is restarted.
go powered databases
- bolt - https://github.com/boltdb/bolt
- ledis - http://ledisdb.com/
- tiedot - https://github.com/HouzuoGuo/tiedot
- cockroachdb - https://github.com/cockroachdb/cockroach
bolt
pure go key-value datastore
ledis
redis like database written in go
attractive to embed redis like features directly into your application which will reduce operational complexity.
tiedot
JSON document database
cockrochdb
A Scalable, Geo-Replicated, Transactional Datastore
design document https://docs.google.com/document/d/11k2EmhLGSbViBvi6_zFEiKzuXxYF49ZuuDJLe6O8gBU/edit
feature summary
- ACID transactional semantics
- versioned values
- primary design goal is consistency and survivability
- aims to tolerate disk, server, rack and datacenter failures
related technologies