Data partitioning, or sharding, involves dividing a large database into smaller pieces. This helps improve how the database is managed, its performance, availability, and how the application distributes its workload. The idea behind sharding is that once a database reaches a certain size, it’s more efficient and cost-effective to add more machines horizontally (meaning, adding more machines) than to invest in bigger, more powerful servers vertically. In nutshell, it is the process of splitting up a DB/table across multiple machines.
Read MoreTag: system design
Latency metrics
Latency measures are crucial for checking how well your apps and services perform. Latency means the total time it takes for a piece of data to go from where it starts to where it ends up, usually on a network. When we talk about latency, we’re mostly talking about how fast things move in a network. It’s one of the main things we look at to see if a service is good or not. We usually measure it in milliseconds. The lower the latency, the better the user’s experience.
Read MorePACELC theorem
In any distributed system, different kinds of failure can happen like network loss or device failure in a machine etc. So What are the guiding principles says about the desirable balance between various characteristics of distributed system.
Read MoreBusiness Continuity and Disaster Recovery (BCDR)
What is Business continuity and disaster recovery?
BCDR represents a set of approaches or processes that helps a company to recover from a disaster so company can resume its routine business operations. Disasters includes hardware failure, natural calamities (earthquake or flood), network failure, employee negligence, outages or disruption due to power failure, cyberattacks etc.
A BCDR plan ensures that businesses operate as close to normal as possible after an unexpected interruption, with minimal loss of data.
Read MoreSystem design: Chat messenger like WhatsApp
What is Chat messenger?
Now a days, we are all using one or other kind of personal chat messenger like WhatsApp or Signal etc. We are using this application to send message to individual or to group. We can send text message or media messages (image, video, document etc.).
Functional requirements
We will discuss and design below features of chat messenger.
- Send text message (One to one)
- Ack of Sent, Delivered and Read receipts
- Last seen of an individual
- Send media message
- Profile management