In this article, I’ll guide you through the steps to use the Danube Go client library to interact with Danube PubSub messaging brokers running on a Kubernetes cluster hosted locally.
Here’s a diagram of the setup::
The setup includes:
The Producer - We’ll run the script outlined in this post, which actually creates three producers (./pubsub-go-demo producer). The Consumer - Similarly, three distinct consumers are created (./pubsub-go-demo consumer). Danube Brokers - These are running on Kubernetes, with Nginx as the ingress controller and etcd for persistent metadata storage.
This is the continuation of the previous post. I would strongly recommend reading Part 1 first then continue here as the description of the program, the intent and the current state are relevant as we move forward.
Iter 3 - Remove Contention # Iter 3 code on Github
Reading line by line from the stream and sending those over to the goroutines to be processed works, but may not be the most efficient way to process a large file.
In this blog post I’ll iterate over a simple script and refactor it each time to improve its performance. Before diving into the details I would quote a couple of well known individuals from the GO Community.
“You want to write code that is optimized for correctness. Don’t make coding decisions based on what you think might perform better. You must benchmark or profile to know if code is not fast enough.
gRPC describes itself as:
gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.
This is Part 3 of a series of three articles describing gRPC functionality.
Let’s assume that the dev teams have been asked to extend the services and there are multiple teams working on it. Often, the teams prefer a specific programming language for a certain job. Luckily, gRPC is supported by a broad range of languages. We are going to extend the service to communicate to a storage service, but this time the service will be written in Python. This simple service can be written in whatever language of choice but in order to showcase the gRPC functionality in Python we could say that it is a project specification.
As we are moving more towards distributed systems and micro-services, the way the services are communicating between each other becomes increasingly important. As you can imagine, the request-response delay is multiplied by the number micro-services running in the backend. Until recently, the industry standard was JSON over REST, which is a software architectural style that defines a set of recommendations for designing loosely coupled applications that use the HTTP protocol for data transmission.
In this article, I make the assumption that you know how to setup the DialogFlow agent by using the intents and entities. I’ll just give a short description of the DialogFlow without providing too much details on how to set it up.
This is the third article and last of the series, where I show another options to consume the data from a REST service. If in the first two posts, I covered the standard web pages and the mobile application using Flutter, this time I’ll do the third option which is by Voice.
In the HTTP Web Services I talked about the best practices on creating HTTP Web Services. My blog post was inspired by a number of articles about structuring GO code, written by a number of well-known individuals of GO community. I would recommend to read that first and then come back here.
This is a continuation of that blog post, as I’ll implement persistent storage using Firestore, instead of keeping all the data in Memory.
In this blog post I describe the process to create a simple Inventory app, following some best practices and guidelines of writing web services in GO.
Building a web service in Go is quite simple, in fact Go has a fast and powerful built in HTTP server. It takes just a couple of lines of code to get a basic HTTP server started. ListenAndServe starts an HTTP server with a given address and handler.
This is the continuation of the previous blog post, where I explained the microservices architecture using GO Kit framework. I strongly recommend you to read the previous post as it gives you the insights into what I’ll cover this post. I talked already about the two layers of the onion architecture: Service and Endpoints. In this post I’ll cover the Transport layer and put everything together in the main function.
This is the second blog post of the series, where I dive into the process details and the framework I used to create the toy project. It is made up of several distinct microservices. There are a number of microservice frameworks in the wild but the most notable ones for GO are Go Micro, Go-Kit, Gizmo.
Go-Kit is the one which has prompted my interest, I’m explaining below why. Asa starting point I’m creating a small application, formed by two microservices.
I’m starting a series of 5 blog posts where I document the path I followed to create a small project which is made up of several components (microservices) deployed over a managed kubernetes infrastructure.
In this first blog post I create a simple serverless data ingest pipeline, the next 2 blog posts are in depth description of the microservices architecture and the last 2 blog posts are about deploying the application in a Kubernetes environment and the mechanism to manage and monitor the services.
This is the third and last post from a series of three where I present an option to build a blog site. In the first 2 posts I showed you how to create a simple static site with Hugo and how to build your own blog site using mainly standard library. In this post I’ll build the blog site using one of the best GO web frameworks out there, Buffalo.
This is the second post from a series of three where I present an option to build a blog site. This time I created a simple blog site in GO, mostly using standard library and a couple of external packages. Althouth it is simple it can serve specific needs. If you don’t need a fully featured site but fast and reliable this may work for you. It was designed with the minimal amount of features required for the blog site and can be developed further on.
This is the first post from a series of three where I present an option to build a blog site. Hopefully, this series will give you some hints on what it takes to build a simple site/blog.
Although my goal is to code the blog site in GO, I want to give a try to this wonderfull tool, Hugo. If you don’t have time to code and need a full featured static site this is one of the best solution out there in the market.