Announcing a golang client for Bayeux (long polling): https://github.com/zph/bayeux.
I recently found myself needing to integrate Salesforce data into a production system. Which gave me the opportunity to implement a client for Bayeux protocol based on the Salesforce docs, Stack Overflow undocumented features, a rough python implementation from Github’s Gists, and Faye Ruby gem.
The protocol enables a client to subscribe for realtime updates based on a predetermined query using Salesforce’s SQL type language.
For the small number of realtime queries supported by Salesforce API, this works wonderfully.
Usage example:
package main
import (
"fmt"
bay "github.com/zph/bayeux"
)
func main() {
b := bay.Bayeux{}
creds := bay.GetSalesforceCredentials()
c := b.TopicToChannel(creds, "topicName")
for {
select {
case e := <-c:
fmt.Printf("TriggerEvent Received: %+v", e)
}
}
}
Check out the library here: https://github.com/zph/bayeux