A terrestrial data communication gateway device for satellite communication comprising: at least one processor; memory accessible to the at least one processor; a low power wide area network (LPWAN) wireless communication subsystem (314, 324) responsive to the at least one processor to allow wireless communication with multiple remote devices; a satellite communication subsystem to allow wireless communication with at least one low earth orbit satellite; wherein the memory stores program code executable by the at least one processor to cause the at least one processor to: perform server functions in relation to the multiple remote devices, configure an edge computing module to perform data processing operations on signals received by the LPWAN wireless communication subsystem (314, 324), the data processing operations comprising compression of data received by the LPWAN wireless communication subsystem (314, 324) to generate a compressed payload for transmission by the satellite communication subsystem; wherein the satellite communication subsystem is configured for receiving from the low earth orbit satellite a first edge computing code module, and storing in memory the received first edge computing code module, wherein the first edge computing code module is executable by the at least one processor to perform data processing operations on data received by the LPWAN wireless communication subsystem (314, 324) to determine a first edge computing code module output; wherein the satellite communication subsystem is configured to receive from the low earth orbit satellite a second edge computing code module, and store in memory the received second edge computing code module, and wherein the second edge computing code module is executable by the at least one processor to perform data processing operations on data received by the LPWAN wireless communication subsystem (314, 324) to determine a second edge computing code module output. at least one processor; memory accessible to the at least one processor; a low power wide area network (LPWAN) wireless communication subsystem (314, 324) responsive to the at least one processor to allow wireless communication with multiple remote devices; a satellite communication subsystem to allow wireless communication with at least one low earth orbit satellite; wherein the memory stores program code executable by the at least one processor to cause the at least one processor to: perform server functions in relation to the multiple remote devices, configure an edge computing module to perform data processing operations on signals received by the LPWAN wireless communication subsystem (314, 324), the data processing operations comprising compression of data received by the LPWAN wireless communication subsystem (314, 324) to generate a compressed payload for transmission by the satellite communication subsystem; perform server functions in relation to the multiple remote devices, configure an edge computing module to perform data processing operations on signals received by the LPWAN wireless communication subsystem (314, 324), the data processing operations comprising compression of data received by the LPWAN wireless communication subsystem (314, 324) to generate a compressed payload for transmission by the satellite communication subsystem; wherein the satellite communication subsystem is configured for receiving from the low earth orbit satellite a first edge computing code module, and storing in memory the received first edge computing code module, wherein the first edge computing code module is executable by the at least one processor to perform data processing operations on data received by the LPWAN wireless communication subsystem (314, 324) to determine a first edge computing code module output; wherein the satellite communication subsystem is configured to receive from the low earth orbit satellite a second edge computing code module, and store in memory the received second edge computing code module, and wherein the second edge computing code module is executable by the at least one processor to perform data processing operations on data received by the LPWAN wireless communication subsystem (314, 324) to determine a second edge computing code module output.