Duomenų srauto architektūra yra kompiuterių programinės įrangos funkcijų serija, kurioje kiekvienas veiksmas automatiškai generuojamas pagal ankstesnės funkcijos veiksmus. Jis taip pat žinomas kaip reaktyvusis programavimas. Kadangi kiekviena funkcija yra aiškiai užprogramuota, nereikia perskaičiuoti vieno kintamojo verčių, kai pasikeičia kitas kintamasis. Tai įgalina lygiagrečių duomenų srauto operacijų funkciją, nes ištekliai nėra sutelkti į prisitaikymą prie kiekvienos naujos komandos poreikių.
Duomenų srauto architektūros koncepcija buvo palyginta su gamyklos surinkimo linija. Kaip ir tokio tipo sistemoje, kiekvienas informacijos paketas yra optimizuotas, kad būtų pasiektas aukščiausias našumas, kartu integruotas į visą sistemą. Informacija yra išdėstyta tam tikru vamzdynu, kur ji pereina iš vienos funkcijos į kitą. Vienas reikšmingas būdas, kuriuo sistema skiriasi, yra tai, kad kiekviename pakete yra informacija, reikalinga jį prijungti prie kitos duomenų srauto grandinės grandies.
Kadangi duomenų srauto architektūra laikoma gana paprasta programavimo forma, ją dažnai naudoja mažiau patyrę programuotojai. Šiuo metodu sistema gali būti programuojama po vieną paketą. Kai kuriuos programuotojus taip pat traukia duomenų srauto architektūra, nes tai yra paprastas būdas organizuoti sudėtingas informacijos grupes.
Nors duomenų srauto architektūra yra gana paprasta naudoti, ji taip pat turi tam tikrų apribojimų. Su paketais, skirtais konkrečioms užduotims, sistema gali veikti efektyviai, tačiau tik su tam tikru lankstumu. Kiekvienas paketas gali būti programuojamas skirtingai, tačiau jei sistema veiktų, ji turi eiti tam tikru keliu. Duomenų srauto architektūra išsprendžia daugybę problemų, būdingų duomenų srautui ir organizavimui, todėl daugelis programuotojų bandys naudoti pagrindines jos koncepcijas, atlikdami koregavimus, kad patenkintų sudėtingesnius programavimo poreikius.
Duomenų srauto architektūros koncepcija yra priešinga tradiciniam stiliui, žinomam kaip von Neumann architektūra. Šio tipo programavimo atveju kiekvienai funkcijai yra skyrius, o ne paketų su informacija, leidžiančia atlikti kelių rūšių funkcijas, serija. Pagrindinis skirtumas nuo šios programavimo formos yra tas, kad ji negali valdyti lygiagrečių procesų. Sistema pavadinta kompiuterių mokslininko Johno von Neumanno vardu, kuris apie koncepcijos pagrindus rašė 1945 m. Nepaisant savo apribojimų, tai taip pat yra gana paprastas ir plačiai paplitęs programavimo stilius.