Tietovuon ohjelmointi on malli, jota käytetään ohjelmistojen suunnittelussa ja toteutuksessa. Tietovirran ohjelmoinnin painopiste on keskittää järjestelmän suunnittelu käsiteltäviin tietoihin sen sijaan, että koodia käytettäisiin tietojen käsittelyyn. Tuloksena on järjestelmä, jossa laskennan perustoiminnot on eristetty pieniksi moduuleiksi, joita kutsutaan solmuiksi; nämä hyväksyvät joitain tietoja, kun tietty tila saavutetaan, käsittelevät tiedot ja työntävät tuloksen takaisin ohjelman ohjausvirtaan, mahdollisesti välittäen tiedot toiselle solmulle. Tämä on ristiriidassa pakollisen ohjelmoinnin tavanomaisen paradigman kanssa, jossa välitön komentojen luettelo määrittelee ohjelman ohjausvirran, ei tietojen tilan. Tiedonkulun ympärille rakennetuille ohjelmille on useita käyttötarkoituksia, mukaan lukien rinnakkaisprosessointi, reaaliaikaiset järjestelmät ja sulautetut järjestelmät.
Implisiittisessä ohjelmoinnissa, joka on yleisimmin käytetty tietokoneohjelmointikieli, ohjelmat rakennetaan usein vuokaavioista, jotka sisältävät toiminto- tai menetelmäkutsujakson, ja jokainen puhelu haarautuu muihin toimintoihin. Tämäntyyppinen ohjelmointi keskittyy luontaisesti menettelyihin, joita käytetään ohjelmatietojen käsittelyyn. Kun käytetään datavirta -ohjelmointia, painopiste poistetaan nimenomaisista funktiokutsuista ja keskittyy sen sijaan abstraktien moduulien luomiseen, jotka hyväksyvät tiedot, kun data tai ohjelma on täyttänyt tai saavuttanut tietyt ehdot. Tässä vaiheessa funktion kutsumisen sijasta ohjelmasuunnittelu saa datan kulkemaan kohti moduuleja tai solmuja, missä se mahdollisesti tulee virtaan useiden solmujen käsiteltäväksi.
Yksi abstrakti esimerkki siitä, miten datavirtaohjelmointi toimii, voidaan nähdä, kun harkitaan lasin täyttämistä vedellä hanasta. Pakollinen lähestymistapa olisi luoda toimintoja veden kytkemiseksi päälle, lasin siirtäminen sopivaan kohtaan hanan alla ja täyttää sitten lasi vedellä. Tietovirran ohjelmointiesimerkin kautta hana odottaa sen sijaan, että kuppi on asetettu sen alle, ja alkaa täyttää sitä, ja kaikki, mikä liikuttaa kuppia, odottaa, kunnes kuppi on saavuttanut tietyn tilan, kuten täynnä, poistaa sen hanan alta . Varsinaiset ohjelmointimekanismit, jotka muuttavat tietojen tilaa, eivät ole suunnittelun välittömiä huolenaiheita.
Tietovuon ohjelmoinnin etuna on sovellus tai järjestelmä, jossa eri solmuja voidaan ohjata luomaan täysin ainutlaatuisia tietovirtoja ilman, että suhdetta on pakko koodata. Lisäksi ohjelma, joka käyttää datavirta -ohjelmointia, on aktiivisesti valmis käsittelemään tietoja koko ajan sen sijaan, että se siirtyisi nimenomaisesti tilaan tai malliin, joka lukitsee pääsyn tai suorittamisen yhdeltä tai useammalta solmulta. Solmujen suunnittelun ja konseptin ansiosta datavirtaohjelmointisovellukset voidaan helposti suunnitella käytettäväksi hajautetuissa järjestelmissä ja rinnakkaisprosessoreissa.