 So, in this module, we will discuss consistency, acid and base. So, what is consistency? Consistency is that once we write data in a database, then all the people who are interested or concerned or involved, they are able to read their data and get the same view, same picture, same data. Now, for example, this is very important consistency. For example, if I place an order on Amazon and I pay a bill, that has to be consistent. But if I place a message about what I had for breakfast on Facebook or talk or send a message on Twitter about something interesting, then it is not going to be a huge loss if my friend reads it after a few seconds or later, maybe a minute or so. So, that's what we talk about in the context of base, that whatever is written changed that will ultimately after some time become available, that is the base concept. The asset concept we have discussed in detail and we will just overview that is immediately availability. So, let's go into more details. So, in the prior module, I briefly mentioned base in this module, we'll go into more detail about asset about base and choosing asset or base depending upon the application and the interaction of the user with the data and what are the approaches which are available. How do we go about it? So, what is the general principle of the asset? The asset principle is an acronym, which we have already discussed over here. So, what the asset ensures, this ensures that this database has facilities to stop you from corrupting or losing the data. And this atomicity is each operation affects the specified data and no other data in the database. Consistency, each operation moves the database from one consistent state to another and so on. So, what is asset transactional consistency? In the locking model, you stop data from being read or written on the subset of information being accessed until the transaction is complete. So, you lock it until complete, okay, until complete and an alternative mechanism is multi-version concurrency control, MVCC, it's a way of adding new data without read locking. So, of course, these have their own benefits and their own challenges. So, let's look at and compare asset versus base. So, asset versus base, you can see over here, asset, there is strong consistency, there is weak consistency over here. And isolation is ensured, availability is first, okay, focus on commit because this is what asset is about. So, we are looking over A over here and then we have C over here and I over here. So, what we are looking at is the consistency versus the data availability. Why? Because it is tunable. Ensure that every client sees all updates right to the primary node holding the data needs to lock until all read replicates are up to date. This is called two phase commit. This is the two phase commit, okay. The change is made locally but applied and confirmed to the client only when all other nodes are updated, all nodes, okay, all nodes. What is the advantage? Base relaxes this requirement requiring only a subset of the nodes holding the same data to be updated. What is the advantage? The advantage of this approach is that the transactions are committed faster, fast commit, this is the advantage of base. The downside is that clients connecting to some of the read replicas may see out of date information for an unspecified period of time, like a new message on Facebook, right? If it's laid by a couple of minutes, no problem. However, if you send a payment order to your bank, you may want that to be immediately available, immediately visible. So, choose asset or choose base. Now, what the companies do is that they move from base to asset and while they are doing it, they are testing their application, they are testing their system and then of course, they adopt the asset compliance and asset or base depends upon the interaction of the user with the data and how frequently the data is updated. I gave you the example of the Facebook post or the Twitter as opposed to making telephone calls and making transactions on the bank using an ATM machine. So, they are different. So, for example, if it's stock trading, right, then I should know how much money I have so that I invest that money into what I can afford. And if I have the information which is not up to date, I am not going to make the right decision or worse, I may make a wrong decision. Other domains of asset versus base choosing is health care, it is defense, it is intelligence. So, we are looking at the timeliness of the data and the security of the data. These things are very important and the availability approaches. Now, this is very interesting. This is what is called as the CAP theorem. CAP as in consistency, availability and partitioning. So, we have this consistency over here, availability over here and partitioning over here. So, what is the significance? Consistency is a sliding scale, not an absolute. Tuning between levels of consistency and availability is the CAP theorem. Okay, so here are some questions to consider. Is it consistent or eventually consistent or without any consistency guarantees? Okay, over here we have to decide about it. And then during a partition, is all data still available, which is availability and partitioning? Is some parts of the same database cluster aren't communicating? Can the database still function? Right, so we have this consistency over here and we have partitioning. And of course, there's overlap over here, there's overlap over here also. So, in the context of CAP, basically we are looking it over here. Consistency and availability. The CAP theorem states that you cannot have all three features at the same time. You can only have two of the three. Each is a sliding scale. And finally, typically the trade-off is between consistency and partitioning. A particular NoSQL database generally provides either consistency and availability or availability and partitioning. So, this is all I have for this module. Thank you very much.