Basic components of a data-driven system