The Clean Architecture article says that the Dependency Rule is the core principle and must be followed on all layers. When applied to Gateways and DB+External Services, it implies that the Gateways should not know DB/Service details. I am not sure I understand it correctly. Seems like it's not possible, because the layer has to have code that knows about specific DB engine, tables, Service wsdl and whatever. It has to contains specific SQL queries or service calls. Even if it is possible to invert the dependency on the DB using event subscription features for some DB engines, it's hard to expect that an external service vendor would implement pub/sub for the sake of another app's clean architecture.
At the same time, it doesn't seem to be that much important to follow the Dependency Rule strictly when we are on the outer circles. The goal is to isolate the domain and application logic, while DB/gateway separation seems less important.
So, is it correct that the Dependency Rule is expected to be violated between the 2 outer layers, or am I getting it all wrong, and Gateway is not about actual SQL queries, but rather about supporting multiple data sources?
Thank you.