While watching a recent video on NATS Jetstream, the following terms were introduced:
- temporal coupling (Classic NATS)
- temporal decoupling (NATS Jetstream)
In this context, the definition of temporal is “relating to time.” So the essence of streams is they offer temporal decoupling – you don’t have to process data in real-time – you can do it later. Several scenarios where this might be useful in the context of an IoT system:
- it takes time to process the data (you can’t do it in real-time)
- batch processing may be more efficient
- an algorithm needs some amount of data history (time-series data)
- data needs to be stored in the event of a network disruption and then sent when network connectivity is restored