I see dds claim it is "real-time". To me this implies "deterministic". How is this accomplished via Ethernet, which inherently is not deterministic?
I know DDS can try to ensure data at a certain rate and notify you of a failure, but thats still a non-deterministic failure.
How does DDS use the term "Realtime"?
So many things here :-).
DDS is an open standard for a publish-subscribe API that does not govern the precision and accuracy of real-time behavior. It does enable deterministic system implementations when paired with suitable hardware, operating system, and transport. Real-Time Innovations has a DDS product, Connext, which is deployed in a wide variety real-time applications and meets the requirements of those systems.
Ethernet is just one potential underlying transport for DDS implementations. Other transports include more deterministic options. Even with ethernet, the Connext DDS implementation allows users to bound the latency associated with reliable communications, subject to the physical limitiations of the transport.
It is beyond the laws of physics to overcome a concrete fault (e.g. a severed wire) without some form of redundancy, which DDS supports as well.
Determinism is by nature in tension with both reliability and availability. A thoughtful system architecture has to balance those requirements.