From JVM to GO : enterprise applications developer path

Path to GO from perspective of Java/Scala enterprise applications developer.

During pandemic lock-down I decided to learn GO. My goal was to learn the language and verify if the ecosystem is ready to be easily used in enterprise applications with complicated business data models and typical cases we you have to face when developing such system.

It's an experiment others can use to find tools they need in their projects without scanning google for long hours. I decided to host it on GitHub so anybody could create a PR to add something I missed, extend particular subject or fix what I wrote.

Each chapter has has code example in my pet project created during this journey. GitHub repo for the project: bettertomorrow

What do we need when writing an enterpise web application

Here is the list of fetures/tools one need to jump straight in to writing business logic. Assumption is we are building a system with microservice architecture, web UI, database (rdbms), message broker, with CI/CD pipeline all that deployed in the cloud. So nothing too fancy.

Must have libs or frameworks and language features for :

  1. Efficiently build rest-api

  2. DB access

  10. Communication with message brokers TBD

Less essential but nice to have :

 

#c5f015 I deliberately omitted generics in the list above to avoid endless discussion