‐push vs. pull: source or sink driving the system buffer structure data flow
‐configurability vs. efficiency ‐monolithic vs. modular design ‐object‐oriented design ‐problems with performance guarantees with plugin architectures ‐modular systems and extensibility