Andmevoo arhitektuur on arvutitarkvara funktsioonide jada, kus iga samm genereeritakse automaatselt eelmise funktsiooni toimingutega. Seda tuntakse ka kui reaktiivset programmeerimist. Kuna iga funktsioon on selgesõnaliselt programmeeritud, ei ole vaja ühe muutuja väärtusi ümber arvutada, kui mõni muu muutuja muutub. See võimaldab paralleelsete andmevoo toimingute funktsiooni, kuna ressursid ei ole keskendunud iga uue käsu vajadustega kohanemisele.
Andmevoo arhitektuuri kontseptsiooni on võrreldud tehase koosteliiniga. Nagu seda tüüpi süsteemi puhul, optimeeritakse iga teabepakett individuaalselt parima jõudluse saavutamiseks, integreerides samal ajal kogu süsteemi. Teave on paigutatud omamoodi konveierisse, kus see liigub ühest funktsioonist teise. Üks oluline viis, kuidas süsteem erineb, on see, et iga pakett sisaldab teavet, mis on vajalik selle ühendamiseks andmevooahela järgmise lüliga.
Kuna andmevoo arhitektuuri peetakse üsna lihtsaks programmeerimisvormiks, kasutavad seda sageli vähem kogenud programmeerijad. Selle meetodi abil saab süsteemi programmeerida ühe paketi korraga. Mõnda programmeerijat köidab ka andmevoo arhitektuur, kuna see on lihtne viis keerukate teaberühmade korraldamiseks.
Kuigi andmevoo arhitektuuri on suhteliselt lihtne kasutada, on sellel ka mõned piirangud. Konkreetsetele ülesannetele pühendatud pakettide abil saab süsteem tõhusalt toimida, kuid ainult teatud määral paindlikult. Iga paketti saab programmeerida erinevalt, kuid kui süsteem peaks töötama, peab see järgima teatud rada. Kuna andmevoo arhitektuur lahendab palju andmevoo ja -korraldusega seotud probleeme, püüavad paljud programmeerijad kasutada selle põhikontseptsioone, tehes samal ajal muudatusi keerukamate programmeerimisvajaduste lahendamiseks.
Andmevoo arhitektuuri kontseptsioon on vastupidine traditsioonilisele stiilile, mida tuntakse von Neumanni arhitektuurina. Seda tüüpi programmeerimisel on iga funktsiooni jaoks eraldi jaotis, mitte pakettide seeria teabega, mis võimaldab mitut tüüpi funktsioone. Peamine erinevus selle programmeerimisvormiga on see, et see ei suuda paralleelseid protsesse käsitleda. Süsteem on oma nime saanud arvutiteadlase John von Neumanni järgi, kes kirjutas kontseptsiooni põhitõdedest 1945. aasta artiklis. Vaatamata oma piirangutele on see ka üsna lihtne ja laialt levinud programmeerimisstiil.