Microservices is a trending topic among software engineers today. Let’s understand how we can build truly modular, business agile IT systems with Microservices architectural style.
Microservices architecture consists of collections of light-weight, loosely-coupled services. Each service implements a single business capability. Ideally, these services should be cohesive enough to develop, test, release, deploy, scale, integrate, and maintain independently.
Formal Definition “Microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. …
There are so many classifications for APIs. But when it comes to web communication, we can identify two significant API types — Web Service APIs (e.g. SOAP, JSON-RPC, XML-RPC, REST) and Websocket APIs. But, what do these really mean? Let’s dive into the world of web communication protocols and discuss how to choose the best API mechanisms at the end.
HTTP is the underlying communication protocol of the World Wide Web. HTTP functions as a request-response protocol in the client-server computing model. HTTP/1.1 is the most common version of HTTP used in modern web browsers and servers. In comparison to early versions of HTTP, this version could implement critical performance optimizations and feature enhancements such as persistent and pipelined connections, chunked transfers, new header fields in request/response body etc. …
Understanding Java Memory Model is an essential learning for serious Java developers who develop, deploy, monitor, test, and tune performance of a Java application. In this blog post, we are going to discuss on Java memory model and how each part of JVM memory contributes to run our programs.
First of all, check whether you understand the following diagram of JVM architecture. If you are not familiar with it, I highly suggest you to skim through my previous post (“Java Ecosystem (Part 1): Understanding JVM Architecture“) and refresh your knowledge.
You must have used some of the following JVM memory configurations when running resource-intensive Java programs. …
Understanding JVM architecture and how Java really works under the hood is an important learning for every Java developer in order to effectively make use of the Java ecosystem. This blog post series will provide you with a solid foundation on JVM internals and technologies around the Java ecosystem.
Designed in 1995 by James Gosling for Sun Microsystems, Java is a multi-paradigm (i.e. object-oriented class-based, structural, imperative, generic, reflective, concurrent) programming language which is loved by millions of developers. On any given ranking index, Java becomes the most popular language for the past 15 years. …
Software Architects are primarily responsible for maintaining the conceptual integrity of a software system. In order to become one of them, you need both theoretical and practical exposure in technology and business domains. With this curated list of all-time best Software Architecture books, you will be able to significantly speed up your learning process.
Disclaimer: This article does not include any affiliate links.
Application logs reveal information on both internal and external events that are visible to the application during its runtime. When a bug, security breach, or anomaly is present in software deployment, application logs are the most helpful and reliable evidence to conduct a proper root cause analysis of the incident.
In this article, let’s understand how to write meaningful application log messages that everyone loves.
When components communicate with each other via message passing, both incoming and outgoing messages must be recorded with API endpoint URLs, request parameters, request origin and intermediary IPs, request headers, auth info, request and response bodies, business context, timestamps, and internal processing steps. …
Git does not define official standards/developer guidelines for commit messages, so the commit message formats usually depend on the discretion of developers. Sometimes, this arrangement can turn your Git commit log into a total mess (especially when developers from multiple backgrounds and teams contribute to the same source code and do not follow a common convention).
$ git log --oneline -10xxxxxxx unit tests updated - good to go
xxxxxxx New customers added
xxxxxxx renew certificates - fullchain.pem & privkey.pem
xxxxxxx Merge branch 'xxxx' of bitbucket.org:xxxxx/xxx-xx …
Junior developers are one of the biggest assets to any software company. After 5–10 years time, these young guys are the ones who decide where the company is heading to in the future. Therefore, turning them into great individual contributors is a win-win for both those developers and the company. Based on my past experiences at work, here’s my advice for you to become a successful 𝐉𝐮𝐧𝐢𝐨𝐫 𝐃𝐞𝐯𝐞𝐥𝐨𝐩𝐞𝐫 and have a rocking career ahead! 😎
The best chefs in the world love to make people happy by bringing their taste buds to life. To do that, these chefs must first develop good taste buds themselves and pay attention to every detail of the food end-to-end — from collecting supplies to serving the final dish to the table. …
When I see a newbie developer whose laptop has the OS vendor’s default desktop and pre-installed bloatware programs popping up, or he has to type the entire SSH command to access daily-using servers, I clearly know that he has gaps in his prior hands-on knowledge and sometimes can be unfit for serious work in the future. For the next few weeks, I will share tips and tricks to help him reduce the time spent on non-value-adding tasks and focus better on what matters the most. My argument is that if he can save15–30 minutes every day, then he gets 2 extra working weeks each year and can significantly reduce unnecessary stress on boring tasks. …
Download the correct version of VirtualBox software for your OS from Oracle Download page and install it locally.
If you have a stable internet connection, download a Debian ISO image for Network Install (netinst).
If you want to install Debian without an internet connection, download a classic bootable ISO image.