A distributed system is a system with multiple components located on different nodes (machines) that communicate and coordinate actions in order to appear as a single system to the end-user.
The node that is a part of a distributed system may be computers, physical servers, containers, or any other node that can connect to the network, have local memory, and communicate by passing messages.
Although distributed systems can sometimes be obscure, they usually have three primary characteristics: all components run concurrently, there is no global clock, and all components fail independently of each other.
Consistency, states that data cannot be written that would violate the rules for valid data. If a certain action occurs that attempts to introduce inconsistent data, the entire action is rolled back and an error returned to the user, and there are many types for consistency like strong consistency and eventual consistency
Strong Consistency simply means the data will get passed on to all the replicas as soon as a written request comes to one of the replicas of the database to make all nodes across the world should contain the same value
And the only way to implement this behavior…
As we know, to maintain consistency in a database, it follows ACID properties. Among these four properties (Atomicity, Consistency, Isolation, and Durability) Isolation means that a transaction should take place in a system in such a way that it is the only transaction that is accessing the resources in a database system.
Imagine that you’re implementing a system for large e-commerce. Many operations have to take place at the same time, multiple customers may simultaneously want to purchase the same product, prices of some product may change, new products are still being delivered, etc. …
CAP is sometimes presented as Consistency, Availability, Partition tolerance pick 2 out of 3.
Unfortunately, putting it this way is misleading because network partitions are a kind of fault, so they aren’t something about which you have a choice: they will happen whether you like it or not.
At times when the network is working correctly, a system can provide both consistency and availability.
When a network fault occurs, you have to choose between either consistency or total availability. Thus, a better way of describing CAP would be either Consistent or Available when Partitioned.
CAP theorem is referred to three…
Indexing is a way to optimize the performance of a database by minimizing the number of disk accesses required and steps when a query is processed. It is a data structure technique that is used to quickly locate and access the data in a database.
Sharding is a database architecture pattern related to horizontal partitioning the practice of separating one table’s rows into multiple different tables, known as partitions. Each partition has the same schema and columns, but also entirely different rows. Likewise, the data held in each is unique and independent of the data held in other partitions.
The main appeal of sharding a database is that it can help to facilitate horizontal scaling, also known as scaling out. Horizontal scaling is the practice of adding more machines to an existing stack in order to spread out the load and allow for more traffic…
Data replication is the process of storing the same data multiple nodes that are connected via a network to improve data availability and accessibility and to improve system resilience and reliability.
If one node goes down due to faulty hardware, malware attack, or another problem, the data can be accessed from a different node.
Having the same data in multiple nodes can lower data access latency since required data can be retrieved closer to where the transaction is executing and this could help to keep data geographically close to your users
Replicating data to a data warehouse empowers distributed analytics…
Distributed database system is one in which the data belonging to a single logical database is distributed to two or more physical databases to inscure reliability and availability
you could distribute your data across multi nodes using many different system architectures
I’m an experienced senior tech professional with vast experience in a lot of technologies aside from Backend being my specialization.