Inom datorprogrammering beskriver "reaktivt" ett system eller en komponent som svarar på händelser eller miljoförändringar genom att reagera på dem, snarare än att proaktivt driva sitt eget beteende.
Viktiga Egenskaper hos Reaktiva System
- Händelsedrivna: Svarar på händelser som användarinmatningar, dataförändringar eller externa signaler.
- Asynkron bearbetning: Uppgifter körs asynkront – händelsehantering blockerar inte andra operationer, vilket möjliggör responsivitet och samtidighet.
- Meddelandeorienterad kommunikation: Komponenter kommunicerar via meddelanden, lämpat för händelsedrivna arkitekturer och möjliggör löst koppling.
- Icke-blockerande I/O: Undviker att blockera huvudtråden; systemet fortsätter bearbeta medan det väntar på I/O-färdigställande.
- Skalbarhet: Designade för att hantera ökande last utan prestandaförsämring via horisontell skalning eller lastbalansering.
Vanliga Exempel
- Webbservrar som svarar på HTTP-förfrågningar med dynamiskt innehåll.
- Händelsedrivna applikationer: chattklienter, meddelandeappar, spel som reagerar på användarinmatning eller realtidshändelser.
- IoT-system som övervakar och svarar på sensordata eller enhetstillstånd.
- Databehandlingsapplikationer som reagerar på nya dataankomster med transformationer eller åtgärder.
Ramverk
Reaktiva system byggs ofta med reaktiva programmeringsparadigmer och ramverk som Reactive Streams, RxJS och Reactor, som ger abstractioner för händelsedrivna, icke-blockerande, skalbara applikationer.