Intro This is the third and last post in a series about learning gRPC, GraphQL and Kubernetes by building Microservices in Go.
Here is a list of posts in the series:
Part 1 - gRPC Microservices Part 2 - GraphQL BFF Part 3 - Deploy services by Kubernetes Full code is in here
We have implemented gRPC servers and BFF in parts 1 and 2.
In part 3, we will deploy those services using Kubernetes and Minikube.
Intro This is the second post in a series about learning gRPC, GraphQL and Kubernetes by building Microservices in Go. Here is a list of posts in the series:
Part 1 - gRPC Microservices Part 2 - GraphQL BFF Part 3 - Deploy services by Kubernetes Full code is in here
We have implemented gRPC servers in part 1.
In part 2, we will develop a BFF server that reads from and writes to these gRPC servers and communicates with clients using GraphQL.
Intro This is the first post in a series about learning gRPC, GraphQL and Kubernetes by building Microservices in Go.
In this series of posts, we will embark on a journey to implement a Backend For Frontend (BFF) and microservices architecture, leveraging gRPC and GraphQL. Additionally, we’ll demonstrate how to deploy these services locally using Kubernetes.
This project serves as an educational endeavor to understand microservices communication and the benefits of using gRPC, GraphQL, and Kubernetes.
Introduction In concurrent programming, managing tasks efficiently is crucial. One common pattern is the job queue model, where multiple tasks (jobs) are submitted to a queue and processed asynchronously by worker routines. In this blog post, we’ll explore how to implement a job queue model in Go using goroutines and channels.
Understanding the Job Queue Model At its core, the job queue model consists of two main components:
Job Queue: The job queue is a data structure that holds tasks awaiting execution.
Intro This article aims to summarize the key concepts and principles of Go’s concurrency model that I’ve learned.
To test your understanding and reinforce your knowledge, a quiz is available at the end of the article.
Goroutines A goroutine is a lightweight independently executing function with its own call stack.
While not equivalent to a thread, conceptually, it can be thought of as a very cheap thread.
Here’s how you can use goroutines:
Introduction Have you ever found yourself in a situation where you needed to prepare a substantial amount of data for testing your code? If so, you’re not alone. Working with large datasets is a common requirement in software development, and Go provides some powerful tools to help you accomplish this efficiently.
In this blog post, I’ll share my approach to writing a large amount of data into a CSV file using Go, and I’ll demonstrate how to leverage Goroutines to make the process more efficient and faster.
Queue FIFO
package queue import "sync" type node struct { data interface{} next *node } type Queue struct { head *node tail *node count int lock *sync.Mutex } func NewQueue() *Queue { return &Queue{lock: &sync.Mutex{}} } func (q *Queue) Len() int { q.lock.Lock() defer q.lock.Unlock() return q.count } func (q *Queue) Push(data interface{}) { q.lock.Lock() defer q.lock.Unlock() ele := &node{data: data} if q.head == nil { q.head = ele q.tail = ele } else { q.
概要 Golang についての基礎的な情報をまとめる資料である。 Go とは? Google が開発したプログラミング言語であり、2009 年に最初のバージョンがオープンソース