Why did we choose Golang as our internal microservices at Apisio?

Why did we choose Golang as our internal microservices at Apisio?

I am currently working as a PHP developer and NodeJS developer. I spend most of my time coding using these two languages.

I started to know about Golang around 5 years ago and I didn’t get my chance to jump in and test around Golang. You can say that I was pretty busy in those days working on government projects which were mostly in PHP.

To shorten the story, there’s a guy as a Lead Architect who introduces me to Golang. It’s not like the old days of Golang, it’s Golang with GoMod and GoRoutine. I’m thinking, okay, this is supposed to be it, the time that I should start working on Golang.

type Dude struct {
    Email string `json:"e_mail,omitempty"`
    PhoneNumber string `json:"phone_number"`
    Name string `json:"name"`
}

Golang Is Fast

Golang is a compiled language, which means the code written is directly translated into formats that a processor understands. Meanwhile, the program in Java is compiled into bytecode that is executed by the virtual machine.

Think of using Golang for a leaner organizational structure in business, where the lack of mid-level managers improves the speed of getting things done. Go has been proven to be generally faster than languages like Java and Python, which enhances the availability and reliability of services.

Golang Is Easy To Learn

Another reason why you should use Golang is that it is easy to learn. Using Go is easy for software developers, particularly if they already have a solid foundation in C or Java. While the keywords and syntax may slightly differ, Go has the same procedural approach that programmers would familiarize in no time.

Golang Is Well-Scaled

One of the reasons why you ought to use Golang is its ability to support concurrency. The Go language has Goroutines, which are basically functions that can run simultaneously and independently.

Goroutines take up only 2 kB of memory, which makes it scalable when the need for running multiple concurrent processes arise. Unlike Java threads, which are blocking by nature, Goroutines are non-blocking. Goroutines is the combination of the async approach used by JavaScript and the traditional multi-threading used by Java.

Golang’s Goroutines are the opposite of what Java’s thread is, where the latter is a heavyweight that gobbles up memory. Technically, you can run millions of GoRoutines without crashing the system. Having leaner and meaner software gives you an edge over your competitors.

Comprehensive Programming Tools

As an open-source initiative, you’ll have no issues in getting the development tools for your team. There are various editors, IDEs, and plugins that you can download from the GitHub repository for Go. A handful of cloud-based IDEs that support Go are also available.

Growing Pool Of Talent

According to Hired, Go is the #1 most in-demand programming language across the planet. Companies are gaining more awareness of how beneficial using Golang can be for their businesses, and programmers are brushing their skills of the language in droves.

Using Golang as a part of your software strategy, you’re tapping into a pool of talent that will only increase in time. Chances are, you’re likely to hire a programmer who is already well-versed in Go.

What is Apisio?

Apisio is a plug-n-play API Hub that connects to any data source that you can think of (database, REST API, gRPC, DynamoDB, Notion, etc).