I'm developing an application where it read data from different data sources. And then those data should be pre-processed and then go through some chain of steps (Filters ?) where those data will get processed and augmented. Finally those data should be written to a common data base.
I'm thinking of a Pipe and Filter kind of style to implement this. While I'm learning on this, I came across these invariants of this style [here].
Independent entities
---- Do not share state
---- Have no knowledge of other filters
Transformation
---- Incremental
---- Not dependent on order in the chain
And I'm having trouble understanding these. Why those are considered as invariants. ?
What happen if they share the state.
what happen if they have a knowledge of other filters.
What if they need to depend on other filters (In my case a pre-process is a must) and what is Incremental.
As I know violating the invariants might erode the code with the time. So if I use this Pipe and Filter style in my app, what kind of things will violate these invariants or what are the things that I can do to violate these invariants ?
Can anyone help me on this.