The server-pubsub is the main backend of DATAVOC project that manages all the other web-server modules of the same project such as the processor

Overview

server-pubsub

The server-pubsub is the main backend of DATAVOC project that manages all the other web-server modules of the same project such as the processor. It uses the publish-subcribe architecture to achieve real-time capability of the communication between sniffer devices and mobile clients. Mobile clients and the sniffer devices can communicate in a many-to-many setup, yet still be able to achieve the real-time capabilty.

The idea behind publish-subscribe setup

Unique identifiers of the sniffer devices are registered as topics to which mobile clients subscribe to keep receiving any updates from. Whenever a sniffer device is used to detect late blight tomato disease, it sends the raw data to the webserver as a new message that should be processed and sent to all the device's subscribers (ie, mobile clients). Even if the server is handling very many messages from many different sniffer devices at the same time, the system will still be able to process and send the results to the appropriate subscribers in real-time. With the publish-subscribe techniques, the system does not have to first persist the processed messages into the database to then retrieve later and match which subscribers subscribed to which topics, a process which would totally kill the real-time capability since the database is an I/O operation, hence inherently slow. The publish-subscribe flow makes the system highly scalable. One customer can own many sniffer devices and can use many mobile clients to monitor the status of the tomato plants at the same time. This means, the tomato grower can have a number of sniffer devices each at a different location within their garden, and all of them work together to make the process faster.

Kiara is a Go equivalent of Phoenix PubSub that makes it easy for Go applications to communicate with each other.

Kiara is a Go equivalent of Phoenix PubSub that makes it easy for Go applications to communicate with each other. Examples Basic Usage Custom Co

Genta Kamitani 138 Apr 23, 2022
ScriptTiger 17 Aug 7, 2022
RPC over libp2p pubsub with error handling

go-libp2p-pubsub-rpc RPC over libp2p pubsub with error handling Table of Contents Background Install Usage Contributing Changelog License Background g

textile.io 9 Aug 8, 2022
Libp2p chat with discovery and pubsub

Dicovery - pubsub chat with libp2p How to test Run boostrap node $ go run main/main.go --port 35005 --nick boot --pk XDLjuaVJ2yKQ2zHMmsee5PGHtDHmkkvFA

Igor Crevar 1 Jul 3, 2022
Mob-code-server - Mob programming - a software development approach where the whole team works on the same thing

For those times when you need a ready to use server with a little more horse pow

Slim.AI 5 Feb 2, 2022
Proof of concept project with MQTT and PLC4X imported as Go modules

portal-connect PoC for a edge MQTT client written in Go Basic project setup with PLC4X and Eclipse Paho How to run Install latest Go version https://g

pragmatic industries GmbH 8 Jan 19, 2022
A wrapper for cloudflared that manages your local proxies for you

Cloudflared Tunnel Wrapper cfdtunnel is a wrapper for cloudflared access tunnel, designed to access multiple tunnels without having to worry about you

Mateus Miranda 34 Jun 23, 2022
KFServing Inference Client A Go re-implementation of seldon-batch-processor.

KFServing Inference Client A Go re-implementation of seldon-batch-processor. See docs to understand its usage. The main reason why we choose to re-imp

连修明 4 Jan 7, 2022
Bell is the simplest event system written in Go (Golang) which is based on the execution of handlers independent of the main channel.

Bell Bell is the simplest event system written in Go (Golang) which is based on the execution of handlers independent of the main channel. Written in

NUT.Tech 25 Jul 24, 2022
Transfer files between machines in the same network

GoTrans Transfer files from computer A to computer B. The program have a sender and a receiver, if you choose a sender you'll need to provide the ip a

Danilo Marques 0 Nov 7, 2021
Go-wd - Get the same working directory path at 'go run' and after 'go build'

go-wd Get the same working directory path at 'go run' and after 'go build' Usage

kota oue 0 Jan 30, 2022
Build - The axelar-core app based on the Cosmos SDK is the main application of the axelar network

⚠️ ⚠️ ⚠️ THIS IS A WORK IN PROGRESS ⚠️ ⚠️ ⚠️ axelar-core The axelar-core app bas

Kalidux 0 Feb 15, 2022
A LoRaWAN nodes' and network simulator that works with a real LoRaWAN environment (such as Chirpstack) and equipped with a web interface for real-time interaction.

LWN Simulator A LoRaWAN nodes' simulator to simulate a LoRaWAN Network. Table of Contents General Info Requirements Installation General Info LWN Simu

ARSLab 26 Jul 16, 2022
The seed repository for your Flamego middleware modules

seed This repository contains seed files that almost every repository of Flamego middleware module should have. Using the content Create an empty repo

Flamego 1 Dec 11, 2021
A base library defines interfaces and modules of aBFT Lachesis consensus protocol

Lachesis base A base library defines interfaces and modules of aBFT Lachesis consensus protocol. Part of galaxy' s Consensus-as-a-Service for distribu

Galaxy developer Team 10 Oct 25, 2021
The modules is contains the golang utilities for internal services

Shared Utility The modules is contains the golang utilities for internal service

Robowealth Mutual Fund 0 Jan 25, 2022
protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript clients that connect the web frontend and golang backend fronted by grpc-gateway.

protoc-gen-grpc-gateway-ts protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript

gRPC Ecosystem 73 Aug 5, 2022
HTTP cache server, such as varnish

pike 与varnish类似的HTTP缓存服务器,主要的特性如下: 提供WEB的管理配置界面,简单易上手 支持br与gzip两种压缩方式,根据客户端自动选择。对于可缓存与不可缓存请求使用不同的压缩配置,更佳的时间与空间的平衡 仅基于Cache-Control生成缓存有效期,接口缓存完全由接口开发者

Tree Xie 164 Jul 20, 2022
A memory-safe SSH server, focused on listening only on VPN networks such as Tailscale

Features Is tested to work with SCP Integrates well with systemd Quickstart Download binary for your architecture. We only support Linux. If you don't

function61.com 2 Jun 10, 2022