 So, the last style I'll cover in this module is one that you might not be as familiar with because it's not as common in the internet, for instance. And that is the pipe and filter style. And the pipe and filter style is very common for data processing applications. So, some kind of data goes through the pipe and along the way it's being filtered or transformed. So, for example, graphic processing, certain workflows and, for example, logistic systems or invoicing systems, in these cases it's very common. And the example I'll take here is from the book, which is about invoicing. And you essentially have several steps. So, for example, in the first one we read the invoice, then we identify what are the payments we have to make, then we issue the receipts. So, have the payments already been made, yes, then issue all the receipts for that. In the cases where there have not been any payments, we might send a reminder. And this can continue, of course. So, essentially you have steps that somehow transform our data that goes in and then have a certain output, for example, a receipt or a reminder. There can be, as we have here, there can be concurrent things. So, the receipts are issued at the same time as the reminders for other payments are sent. There are, of course, other options to do this. But, essentially, here we have all these transformation steps and the data flows through this pipe and it's being filtered along the way. Now, what's good about this architecture is that, in theory, at least, you can reuse the filters, the transformations. So, maybe, at the later point, you again need to read an invoice. For example, you figure out that the payments might actually be connected to another invoice. So, maybe here you want to do, again, read invoice. You could just reuse this because your pipe, your data format, should remain the same. So, it doesn't change that much. So, that's very good. The other thing is that this very well matches with how many businesses have arranged, have structured their workflows. So, they already have the way they work, the way they do their processes, looks like this. So, it's a very easy match to put this into a system. That's basically the language the business experts would talk in. So, it's a very direct match where this is not always the case in other architectures. So, that's why in many business systems, this might be good. We have the advantage of concurrency. So, we can do these concurrent operations. We just have different filters that run at the same time, different pipes, essentially. And we can, again, modify individual steps. So, we could do modification here without changing the entire system. Because the input and the output should remain the same. We can just replace or modify single filters, single transformations. The big disadvantage here is to actually agree on how the pipes should look like. So, what is the kind of data that flows in and out of it? What is the input? What is the output? Because if you can't agree on that, it's very difficult to have this system in which you can just insert new transformations, reuse them later on. And that's why this can be quite tricky. This is also the reason why this is extremely popular in cases where it's pretty straightforward, like graphics processing where you have basically the same data coming in and going out. It's just somehow filtered. But if this is a business process, it can be quite difficult to agree on exactly how this looks like. So, that's the big disadvantage, but overall a very common, a very popular style in data processing. Okay, so this concludes the part on architectural styles. What we now do in the next recording is talk about generic application architecture. So instead of having individual styles, because of course you can combine them, you can have a pipe and filter here in one component, a bunch of other components together implement model view controllers, you could have all of that. But you also have something that is called a generic application architecture. So that's an entire architecture that is used for certain businesses. And that's what we'll discuss next.