Skip to content

Sample project to get started with the Pub/Sub API

License

Notifications You must be signed in to change notification settings

forcedotcom/pub-sub-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Getting Started with the Pub/Sub API

About Pub/Sub API

Welcome to Pub/Sub API! Pub/Sub API provides a single interface for publishing and subscribing to platform events, including real-time event monitoring events, and change data capture events. Based on gRPC and HTTP/2, Pub/Sub API enables efficient delivery of binary event messages in the Apache Avro format.

This repo contains the critical proto file that you will need to use the API.

gRPC

gRPC officially supports 11 languages, but there is unofficial community support in more. To encode and decode events, an Avro library for your language of choice will be needed. See below for which officially supported languages have well-supported Avro libraries:

Supported gRPC Language Avro Libraries
C# AvroConvert
Apache Avro C# (docs are not great)
C++ Apache Avro C++
Dart avro-dart (last updated 2012)
Go goavro
Java Apache Avro Java
Kotlin avro4k
Node avro-js
Objective C ObjectiveAvro (but read this)
PHP avro-php
Python Apache Avro Python
Ruby AvroTurf

Documentation, Blog Post and Videos

Code Samples from Salesforce

Salesforce provides these samples for demonstration purposes. They aren't meant to be used in production code. Before you use these samples in production, make sure you perform thorough functional and performance testing.

Code Samples from the Developer Community

These examples are developed by the community. They aren't supported by Salesforce. Use at your own discretion.

If you have a code sample for Pub/Sub API that you would like to add a link to in this section, submit a PR with the modified readme page. We don't guarantee that we can link to all samples. Priority will be given to samples implemented in a programming language that is not represented in this repository's samples.