What Is Sharding?

In this article, I will tell you a few things about sharding and explain why it is actually an important technique. 

Despite its significance, sharding also has some cons, and there are certain problems you may encounter if you decide to use it. What are they? I’ll explain that below.

Exploring Multi-Region Database Deployment Options With a Slack-Like Messenger

Distributed database deployments across multiple regions are becoming commonplace. And there are several reasons for that. More and more applications have to comply with data residency requirements such as GDPR, serve user requests as fast as possible from the data centers closest to the user, and withstand cloud region-level outages. 

This article reviews the most widespread multi-region deployment options for distributed transactional databases by designing a data layer for a Slack-like corporate messenger.

Contention, Coherency, and Math Behind Software

Today I want to tell you a few words about how you can describe your system through mathematical equations — at least to some degree. You will get familiar with terms like Contention, Coherency, and Coherency Delay. Additionally, I want to show you laws and their mathematical equations that can help you calculate the impact of these 3 mechanics on your application.

This article is more focused on overall system design and architecture than any other written by me till today — so consider yourself warned. In the article, I will try to answer a question: Can we scale systems indefinitely? 

Scalable Client-Server Communication With WebSockets and Spring Boot (Part II)

Secure WebSockets over SSL/TLS

To prevent man-in-the-middle attacks between server and client, it is strongly recommended to use the WSS protocol, to send encrypted TCP messages. This is the equivalent of using HTTPS instead of HTTP. 

Setting up NGINX

We will use NGNIX as a reverse proxy that forwards all incoming requests to the Spring Gateway MS. We will configure the proxy to listen to port 443 which is the default port for secure connections in both HTTPS/WSS.

The Need for Layer 3 on the Internet of Value

Over the past decade, we have witnessed the emergence of revolutionary innovation, of which the evolutionary significance is yet to be fully recognized. Of course, we’re referring to the blockchain, cryptocurrencies, and, more generally, the phenomenon that we describe as the Internet of Value. Blockchain and related technologies have the opportunity to transform the world of finance and other value systems, in exactly the manner by which the Internet has transformed the way we exchange information.

There have been some key milestones leading up to this point: the launch of Bitcoin in 2008; the emergence of altcoins from 2011 onwards; the launch of Ethereum in 2015. We call this Layer 1 — the foundational level — with the economic function of value creation and the technical one of ensuring the basic functionality of accounting and transfer of crypto assets. All of this is implemented on the basis of distributed registries and with the conditions of interaction strictly regulated at the code level.