Arhitektura protoka podataka je niz funkcija u računalnom softveru gdje se svaki korak automatski generira radnjama prethodne funkcije. Također je poznato kao reaktivno programiranje. Kako je svaka funkcija eksplicitno programirana, nema potrebe za ponovnim izračunavanjem vrijednosti jedne varijable kada se promijeni druga varijabla. To omogućuje funkciju paralelnih operacija protoka podataka jer resursi nisu usmjereni na prilagodbu potrebama svake nove naredbe.
Koncept arhitekture protoka podataka uspoređen je s tvorničkom montažnom linijom. Kao i kod te vrste sustava, svaki paket informacija je optimiziran za vrhunske performanse pojedinačno, a također je integriran u cijeli sustav. Informacije su raspoređene u neku vrstu cjevovoda, gdje napreduju od jedne funkcije do druge. Jedan značajan način na koji se sustav razlikuje je da svaki paket sadrži informacije potrebne za povezivanje sa sljedećom karikom u lancu protoka podataka.
Kako se arhitektura protoka podataka smatra prilično jednostavnim oblikom programiranja, često je koriste manje iskusni programeri. Ovom metodom, sustav se može programirati jedan po jedan paket. Neke programere također privlači arhitektura protoka podataka jer je to jednostavan način organiziranja složenih grupa informacija.
Iako je arhitektura protoka podataka relativno jednostavna za korištenje, također ima neka ograničenja. S paketima posvećenim specifičnim zadacima, sustav može funkcionirati učinkovito, ali samo s određenom dozom fleksibilnosti. Svaki se paket može drugačije programirati, ali ako sustav radi, mora slijediti određeni put. Kako arhitektura protoka podataka rješava mnoge probleme svojstvene protoku podataka i organizaciji, mnogi će programeri pokušati upotrijebiti njezine osnovne koncepte dok se prilagode kako bi zadovoljili sofisticiranije potrebe programiranja.
Koncept arhitekture protoka podataka suprotan je tradicionalnom stilu poznatom kao von Neumannova arhitektura. U ovoj vrsti programiranja postoji odjeljak za svaku funkciju, a ne niz paketa s informacijama koji dopuštaju nekoliko vrsta funkcija. Primarna razlika s ovim oblikom programiranja je u tome što nije u stanju nositi se s paralelnim procesima. Sustav je dobio ime po informatičkom znanstveniku Johnu von Neumannu, koji je pisao o osnovama koncepta u radu iz 1945. godine. Unatoč svojim ograničenjima, ovo je također prilično jednostavan i raširen stil programiranja.