Let's Go Further! Advanced patterns for building APIs and web applications in Go

Let’s Go Further helps you extend and expand your knowledge of Go — taking you beyond the basics and guiding you through advanced patterns for developing, managing and deploying APIs and web applications.

It builds on many of the concepts that were introduced in Let’s Go, and talks through the start-to-finish build of a RESTful JSON API — from initial project setup through to deployment in production.

This gives us an opportunity to cover important topics in the context of a complete, working, application — including SQL migrations, CORS requests, permission-based authorization, managing background tasks, reporting metrics, automating build and deployment steps, and much more.

If you enjoyed Let’s Go, this course should be a great fit for you and an ideal next step in mastering Go.

Let's Go book cover

What You’ll Learn…

  1. 1Structure and organization — How to implement an idiomatic and flexible code structure for your RESTful API projects.
  2. 2JSON responses — How to send JSON responses from your API, how to format and customize them to meet your exact needs, and what common gotchas you need to be aware of.
  3. 3JSON requests — How to parse incoming JSON requests, manage bad requests, and restrict and validate the JSON contents.
  4. 4SQL migrations — How to use SQL migrations to organize and manage changes to your database schema.
  5. 5Database operations — How to set timeouts on your database queries and optimize the behavior of Go's sql.DB connection pool.
  6. 6Beyond CRUD — How to perform 'advanced' actions on your API resources, including fetching related data and performing partial updates (with optimistic concurrency control).
  7. 7Filtering, sorting and pagination — How to easily support filtering, sorting and pagination of data in your API endpoints.
  8. 8Full-text search — How to use PostgreSQL's full-text search functionality to support natural-language searches of your data.
  9. 9Structured logging — How to develop a custom logger which writes structured, leveled, log entries in JSON format.
  10. 10Rate-limiting — How to implement a simple and robust pattern for enforcing per-client rate limits to your API.
  11. 11Managing background tasks — How to safely execute tasks in background goroutines.
  12. 12Graceful shutdown — How to set up your API to allow graceful shutdowns, including waiting for background tasks to complete.
  13. 13Sending emails — How to send emails from your API and manage email content using Go’s new embedded files functionality.
  14. 14User activation and password resets — How to build secure workflows for registering users, verifying their email address, and managing password resets.
  15. 15Authentication — How to authenticate users with both stateful bearers tokens and stateless JWTs (JSON web tokens).
  16. 16Permission-based authorization — How to implement granular permission-based authorization checks on your API endpoints.
  17. 17Managing CORS requests — How to control cross-origin requests to your API from front-end JavaScript applications.
  18. 18Metrics — How to expose application metrics, including memory use, sql.DB connection pool statistics, response status counts and more.
  19. 19Building and auditing — How to use Go's tooling and Makefiles to easily audit your code, build binaries and vendor dependencies.
  20. 20Versioning — How to leverage Git to implement automatic application versioning when building binaries.
  21. 21Deployment — How to set up a Linux server on Digital Ocean, automate deployments, and run your API as a background service in production using systemd.

Want to get a better feel for the book? Take a look through the free sample and chapter listing

Frequently Asked Questions

Who is this book suitable for?

This book is written as a follow up to Let's Go. If you've already read and enjoyed Let's Go, then Let's Go Further should be a great fit for you and an ideal next step in your learning.

Let's Go Further can also be read as a standalone book, but please be aware that it's not designed for newcomers to Go — and you should already be comfortable with Go and the fundamentals of building and testing database-backed web applications.

Is the book based on the standard library packages?

Yes, the book uses the standard library (rather than a specific framework like Buffalo, Echo or Gin). A few small external packages are used where it makes sense for security reasons and to reduce complexity.

Do you offer a student discount?

Yes, I'm happy to offer a 25% discount for anyone in full-time education. Email me at, and I'll send you a discount code that you can use at checkout.

How often do you make updates? How will I get them?

Updated versions of the book will be emailed to you at the address you provide during checkout. These are usually sent out once every 6 months, to coincide with new major releases of the Go language. You can unsubscribe from the updates at any time.

How do you provide access to the source code?

The source code is simply included in a zip file as part of the book download. You can open it on your local machine and start exploring it right away.

About the Author

Hey, I’m Alex Edwards, a full-stack web developer and author. I began working with Go 8 years ago in 2013, and have been teaching people and writing about the language for nearly as long.

I’ve used Go to build a variety of production applications, from simple websites (including the one you’re reading now) to high-frequency trading systems. I also work on a number of open source Go packages, including the popular session management system SCS.

I live near Innsbruck, Austria. I post regularly on my blog, and you can follow me on Twitter, Instagram and GitHub.

Money-back guarantee — If you don’t get anything from the book, then I don’t want your money. Just reply to your purchase receipt with 30 days and I’ll issue a full refund.

Any questions? Feel free to drop me an email at and I’ll be happy to help.

Download Your Copy Now…

Let’s Go Further $59.95

  • The full book in HTML, PDF and EPUB format
  • Complete application source code
  • Future updates and releases included
  • In-depth explanations; learn why as well as how
  • All DRM-free and yours to download
  • Totally up-to-date and written for Go 1.16
I want this!

Looking to buy this for your whole team?
I offer team licenses at a steep discount. Send me an email at to discuss your needs.

Publication Information