Dataflow -arkkitehtuuri on sarja tietokoneohjelmiston toimintoja, joissa jokainen vaihe luodaan automaattisesti edellisen toiminnon toimien avulla. Se tunnetaan myös reaktiivisena ohjelmointina. Koska jokainen toiminto on nimenomaisesti ohjelmoitu, yhden muuttujan arvoja ei tarvitse laskea uudelleen toisen muuttujan muuttuessa. Tämä mahdollistaa rinnakkaisten datavirtatoimintojen toiminnan, koska resurssit eivät keskity mukautumiseen kunkin uuden komennon tarpeisiin.
Datakulkuarkkitehtuurin käsitettä on verrattu tehtaan kokoonpanolinjaan. Kuten tällaisessa järjestelmässä, jokainen tietopaketti on optimoitu parhaaseen suorituskykyyn yksilöllisesti samalla kun se on integroitu koko järjestelmään. Tiedot on järjestetty eräänlaiseen putkistoon, jossa ne etenevät toiminnosta toiseen. Yksi merkittävä tapa, jolla järjestelmä eroaa toisistaan, on se, että jokainen paketti sisältää tiedot, jotka tarvitaan sen yhdistämiseksi seuraavaan linkkiin datavirtaketjussa.
Koska datavirta -arkkitehtuuria pidetään melko yksinkertaisena ohjelmointimuotona, sitä käyttävät usein vähemmän kokeneet ohjelmoijat. Tällä menetelmällä järjestelmä voidaan ohjelmoida yksi paketti kerrallaan. Jotkut ohjelmoijat ovat myös kiinnostuneita datavirta -arkkitehtuurista, koska se on yksinkertainen tapa järjestää monimutkaisia tietoryhmiä.
Vaikka datavirta -arkkitehtuuria on suhteellisen helppo käyttää, sillä on myös joitain rajoituksia. Tiettyihin tehtäviin omistetuilla paketeilla järjestelmä voi toimia tehokkaasti, mutta vain tietyn verran joustavasti. Jokainen paketti voidaan ohjelmoida eri tavalla, mutta jos järjestelmä toimii, sen on noudatettava tiettyä polkua. Koska datavirta -arkkitehtuuri ratkaisee monia datavirtaan ja organisaatioon liittyviä ongelmia, monet ohjelmoijat yrittävät käyttää sen peruskäsitteitä ja tehdä muutoksia muokatakseen kehittyneempiä ohjelmointitarpeita.
Tietovirta -arkkitehtuurin käsite on vastakohta perinteiselle von Neumann -arkkitehtuurille. Tämäntyyppisessä ohjelmoinnissa on osio kullekin toiminnolle eikä sarja paketteja, jotka sisältävät tietoja, jotka mahdollistavat monenlaisia toimintoja. Ensisijainen ero tähän ohjelmointimuotoon, koska se ei pysty käsittelemään rinnakkaisia prosesseja. Järjestelmä on nimetty tietotekniikan tutkija John von Neumannin mukaan, joka kirjoitti käsitteen perusteista vuonna 1945. Rajoituksistaan huolimatta tämä on myös melko yksinkertainen ja laajalle levinnyt ohjelmointityyli.