“A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires coordinating processes to reach consensus, or agree on some data value that is needed during computation. Example applications of consensus include agreeing on what transactions to commit to a database in which order, state machine replication, and atomic broadcasts”. 
As you see in the definition, the consensus is the most important part of the distributed applications. In this article, I will describe how to implement a Raft Consensus algorithm implementation with Go…
What is Distributed Computing?
“Distributed computing is a field of computer science that studies distributed systems. A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. The components interact with one another in order to achieve a common goal.”
In the 1970s-1980s, Distributed systems were just a research topic at universities. After very large web systems become popular, lots of practitioners inside the software industry, started work on this topic.
There are some advantages and disadvantages of distributed computing.
While researching about Java and JVM architecture, I found a meetup talk and other resources. Then I recognized that other developers might be curious about Java’s behind the scene. So I decided to write an article about how Java Application runs? How Java VM run by explaining step by step? In order to discuss this, I collected some background information. Then finally illustrate VM running steps. The sample application is based on that meetup talk Terence Parr.
“Java is a general-purpose programming language that is class-based, object-oriented, and designed to have as few implementation dependencies as possible. It…
Inside this post, I will try to explain how to use go modules with a real-world example.
First of all, managing dependencies becomes confusing while using Go, especially for the developers who come from languages such as Java, C#, etc like me. Whole dependencies will be installed to the src directory inside GOPATH. And other kinds of stuff is very unique for Go.
“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.”
The software development industry changes very rapidly. After DevOps term becomes very popular, only writing code is not enough anymore. You should automate the software development process as can as possible. In this post, I will describe how to define our infrastructure by just writing code.
“Infrastructure as code is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools”.
Why do we need infrastructure as code?
Twelve-factor app development methodology strongly suggests that “strict separation of config from code.”
Spring Cloud offers a solution to that problem with Spring Cloud Config Server. Spring Cloud Config Server defines itself as below.
“Spring Cloud Config provides server-side and client-side support for externalized configuration in a distributed system. With the Config Server, you have a central place to manage external properties for applications across all environments.”
Managing your configuration in a central place is a super easy and also very efficient feature. Lacking centralized configuration causes making mistakes very often.
Another good feature is after changing your configuration, you…
In this tutorial, I am going to share a sample project which contains Signup, Login, Authorization, Email verification functions. These functions can be used to start a new Serverless project. I will share code on GitHub at the end of the article so people can start with the existing code. Technology stack is below:
You can develop this project with the AWS Free Tier. You do not need to pay anything to AWS.
Later on this tutorial, I will give some tips&tricks of each of these…
This is the third article of my AWS journey with Go language.
At the first article, I tried to discuss AWS introduction.
Then I moved to the more complicated staff Gorm, Object-Relational Model for Go and Amazon RDS PostgreSQL to handle create and get a user from the database.
But after this development, I need some extra features like running serverless functions at local. Also in my sample project, I have some common features like database connection, etc. If I work as the previous article, I need to redeploy each project with huge effort, when I changed shared code. After…
Our toolbox is like below:
— — — — — — — — — — — — — — — — — — — — — — — — — —
I have 7 years of experience in high-quality software application development, implementation, and integration.