An internet of things, IoT, system, comprising: a middleware layer including IoT middleware in communication with an application that provides services to at least one IoT device, wherein the at least one IoT device includes metadata with a communication channel (504,506,508) declared for communicating with the application, wherein the metadata further includes declarative communication pathways or routes for communications between the at least one IoT device and the application; and a connectivity fabric layer that accesses the metadata and implements communication pathways or routes for communications between the at least one IoT device and the application, the connectivity fabric layer including: a plurality of global IoT connectivity fabric nodes that create a global IoT connectivity fabric that enables establishment of the communication channel (504, 506, 508) between the application and the at least one IoT device, wherein the plurality of global IoT connectivity fabric nodes communicate using inter geographies message bus traffic; a device session manager that manages channel subscription information for the communication channel (504, 506, 508) from the metadata, wherein the application subscribes to the communication channel (504, 506, 508); and a global IoT connectivity fabric node discovery service that provides to the at least one IoT device dynamic discovery of a nearby global IoT connectivity fabric node of the plurality of global IoT connectivity fabric nodes, wherein the at least one IoT device establishes a network connection with the nearby global IoT connectivity fabric node to communicate with the application, wherein the network connection comprises the communication channel (504, 506, 508) and wherein the global IoT connectivity fabric node discovery service provides the nearby global IoT connectivity fabric node using domain name server, DNS, proximity. a middleware layer including IoT middleware in communication with an application that provides services to at least one IoT device, wherein the at least one IoT device includes metadata with a communication channel (504,506,508) declared for communicating with the application, wherein the metadata further includes declarative communication pathways or routes for communications between the at least one IoT device and the application; and a connectivity fabric layer that accesses the metadata and implements communication pathways or routes for communications between the at least one IoT device and the application, the connectivity fabric layer including: a plurality of global IoT connectivity fabric nodes that create a global IoT connectivity fabric that enables establishment of the communication channel (504, 506, 508) between the application and the at least one IoT device, wherein the plurality of global IoT connectivity fabric nodes communicate using inter geographies message bus traffic; a device session manager that manages channel subscription information for the communication channel (504, 506, 508) from the metadata, wherein the application subscribes to the communication channel (504, 506, 508); and a global IoT connectivity fabric node discovery service that provides to the at least one IoT device dynamic discovery of a nearby global IoT connectivity fabric node of the plurality of global IoT connectivity fabric nodes, wherein the at least one IoT device establishes a network connection with the nearby global IoT connectivity fabric node to communicate with the application, wherein the network connection comprises the communication channel (504, 506, 508) and wherein the global IoT connectivity fabric node discovery service provides the nearby global IoT connectivity fabric node using domain name server, DNS, proximity. a plurality of global IoT connectivity fabric nodes that create a global IoT connectivity fabric that enables establishment of the communication channel (504, 506, 508) between the application and the at least one IoT device, wherein the plurality of global IoT connectivity fabric nodes communicate using inter geographies message bus traffic; a device session manager that manages channel subscription information for the communication channel (504, 506, 508) from the metadata, wherein the application subscribes to the communication channel (504, 506, 508); and a global IoT connectivity fabric node discovery service that provides to the at least one IoT device dynamic discovery of a nearby global IoT connectivity fabric node of the plurality of global IoT connectivity fabric nodes, wherein the at least one IoT device establishes a network connection with the nearby global IoT connectivity fabric node to communicate with the application, wherein the network connection comprises the communication channel (504, 506, 508) and wherein the global IoT connectivity fabric node discovery service provides the nearby global IoT connectivity fabric node using domain name server, DNS, proximity.