2021-07-23

2021-07-23 Friday - Book Review: Building Distributed Applications in Gin

[image source: Amazon.com]

 

 

Title: Building Distributed Applications in Gin

Subtitle: A hands-on guide for Go developers to build and deploy distributed web apps with the Gin framework

482 pages,Publication Date: 2021-07-23 Friday

Author: Mohamed Labouardy, CTO and cofounder of Crew.work, @mlabouardy

My Book Review:

Full Disclosure: Pooja Yadav (Marketing Coordinator with Packt) graciously provided me with a copy of the book to review, prior to the publication date.

This is a non-nonsense book that is focused on building your skills – with immediacy: By page-21, the author has you writing Go code with the Gin framework.

From the very first chapter, the author is teaching enterprise-class software development techniques for building distributed applications.

What I Particularly Liked:

This book is eminently practical for the Go programmer interested in a well-organized approach to the practical steps of enterprise-class software design and development of distributed architectures - leveraging not just the Gin framework – but even at a more generalized pattern level.

The chapter lengths are very reasonable and appropriate. There is a clear goal for each chapter – and the writing is clear and concise. The pace of information delivered is optimal – and sustains the reader’s interest.

The book is well organized – and covers a significant amount of information, techniques, enterprise-class practices – and enterprise-class considerations, such as:

  • GitFlow model,
  • Project folder structure,
  • Team development collaboration with GitHub,
  • User Interface Design [CSS, Bootstrap, React.js, Single-Page Application (SPA]),
  • Containerization [Docker, Kubernetes],
  • Caching [Redis, Redis Insights, HTTP cache headers],
  • Security [API Keys, JSON Web Tokens (JWTs), Auth0, OAuth 2, session management, RS256 signing, SSL/TLS encryption, role-based access control (RBAC), cross-origin resource sharing (CORS)],
  • Logging [Elasticsearch, Logstash, and Kibana (ELK)],
  • Monitoring/metrics [Prometheus, Grafana, Telegraf],
  • Integration with a backend database [MongoDB, MongoDB Compass],
  • REST APIs [OpenAPI Spec (OAS)],
  • Testing [Postman REST client, vulnerability scanning tools such as Snyk, and Golang Security Checker – Gosec, writing unit tests, code coverage reports, integration tests, Postman Collection Runner, Newman],
  • Performance benchmarking [Apache Benchmark],
  • Messaging [RabbitMQ, AWS SQS],
  • Horizontal scalability [Docker Compose, Nginx as reverse proxy for APIs],
  • CI/CD pipeline [CircleCI],
  • Cloud deployment [AWS: EC2, ECS, EKS],
  • Semantic versioning


The setup instructions cover Linux, Windows, and MacOS

Coverage of the Golang extension for Visual Studio

The author’s careful step-by-step tutoring of Go command line utilities – focused on building core knowledge to accelerate your ability to build and ship software.

How to build a Module dependency graph – leveraging Graphviz (a favorite tool).

The Further Reading suggestions at the end of each chapter.

Notably, the author’s use of solid open source and commercial-grade tooling – in constructing a holistic and layered approach in  the many examples.

The book’s github repository code examples – non-trivial, well-designed.

What could be improved in a future next edition?

  • go-swagger, a GitHub project utilized in the book’s examples for OpenAPI Specification APIs – only supports Swagger / OAS 2.0.  Suggest evaluating kin-openapi as a possible alternative.

  • Consider adding a chapter to cover Event-Driven Architecture examples.


Conclusion:

There is much value in this book – and I recommend it.

I would really like to give this book five stars. But I won’t – since it is still promoting use of OAS 2.0 in the API examples – and supporting tooling.  Note: OpenAPI Specification 3.0 was published on July 26th, 2017.

2021-06-11

2021-06-11 Friday - Not All Problems Need Fixing

 

Image by Andy Gries from Pixabay

Some years ago, I was involved in a significant client project to migrate quite a few legacy systems to a new platform.

As I diligently attempted to analyze the complexity of the data clean-up and migration effort - another Yoda-level Enterprise Architect sitting next to me began asking a few questions.

He quickly (and quite stunningly surmised, correctly - after just a few SQL queries) - that the cost/effort to complete the data cleansing and migration effort for that particular system would *far* exceed the most optimistic ROI - based on the rather bleak revenue projections for that particular system.

His astounding intuitive leap - that the business should sell the book of business that was contained in that small system - was a masterful stroke.

I keep that lesson close - for while I may have a hammer in my tool kit - not all problems are nails, and not all "houses" are worthy of rehab.

2021-06-03

2021-06-03 Thursday - A Balance-of-Forces

 

Image by Einfach-Eve from Pixabay

 When developing a solution recommendation - I pay particular attention to careful consideration of the following balance-of-forces considerations:

  1. The impact, capacity, capabilities, and constraints of the organization itself.
  2. The impact, capacity, capabilities, and constraints of the third-parties that may be involved.
  3. The potential trade-offs of the recommended solution in supporting/enabling current and future needs.

There are times when this balancing act leads to recommendations that may seem counter-intuitive - that might exclude choices that are considered in vogue, hip, cool, leading-edge. 

But, just a physician seeks to treat a patient in a holistic manner - so too, do I, seek to treat the enterprise.


 

WordCount

Copyright

© 2001-2026 International Technology Ventures, Inc., All Rights Reserved.