Integration testing is hard

That is kind of true, but the telemetry is transformed first, so there is an interdependency between the data across the modules and processes.

For example, you fire from process A some telemetry that contains a boolean value. You receive the telemetry in process B, and for some reason you need to transform it into a 0 or 1 and save it into your database. You test these things separately. Now if someone changes some code so that A no longer produces a boolean, but instead produces a string (or a 0 or 1, doesn’t matter). They also change A’s tests. All looks to be fine. But after deployment, B tries to consume the telemetry and now it breaks, because its format has changed.

You can imagine a similar case where data isn’t transformed in this way in B, but instead filtered, merged etc.