Component based architecture for data flow