How narotham99git/pub-sub-api works
This repository provides the Salesforce Pub/Sub API contract plus demonstration clients in Go, Java, and Python—not a single deployable service. The central workflow is authenticating a client, discovering topic/schema metadata, then publishing Avro events or subscribing with replay and processing received events. The Java samples also include managed subscriptions and an account-update application; Python includes inventory and Salesforce-listener examples. Edges reflect README claims and source-index references or shown calls; unsampled implementation details are not inferred.
Main entry points: CommonContext.java Java context · AccountListener.java Account update app · grpcclient.go Go gRPC client · pubsub_api.proto Pub/Sub gRPC API
Components 23
API contract
- Pub/Sub gRPC API
pubsub_api.proto
Pub/Sub clients
- Go gRPC client
go/grpcclient/grpcclient.go - Go OAuth
go/oauth/oauth.go - Go settings
go/common/common.go
Java samples
- Java configuration
java/src/main/java/utility/ExampleConfigurations.java - Java context
java/src/main/java/utility/CommonContext.java - Java session auth
java/src/main/java/utility/SessionTokenService.java - Trace interceptor
java/src/main/java/utility/XClientTraceIdClientInterceptor.java - Event parser
java/src/main/java/utility/EventParser.java - Topic discovery
java/src/main/java/genericpubsub/GetTopic.java - Schema discovery
java/src/main/java/genericpubsub/GetSchema.java - Event publishing
java/src/main/java/genericpubsub/Publish.java - Stream publishing
java/src/main/java/genericpubsub/PublishStream.java - Event subscription
java/src/main/java/genericpubsub/Subscribe.java - Managed subscription
java/src/main/java/genericpubsub/ManagedSubscribe.java - Account update app
java/src/main/java/accountupdateapp/AccountListener.java - Account event utilities
java/src/main/java/accountupdateapp/AccountUpdateAppUtil.java
Python examples
- Python Pub/Sub client
python/InventoryAppExample/PubSub.py - Inventory workflow
python/InventoryAppExample/InventoryApp.py - Salesforce listener
python/InventoryAppExample/SalesforceListener.py - Change header utility
python/util/ChangeEventHeaderUtility.py
Other components
- Client developer
- Salesforce platform
Connections 25
- Client developer → Pub/Sub gRPC API: uses contract
README.md - Pub/Sub gRPC API → Salesforce platform: defines interface
README.md - Go gRPC client → Go OAuth: requests user info
go/grpcclient/grpcclient.go - Go gRPC client → Go settings: uses settings
go/grpcclient/grpcclient.go - Go gRPC client → Pub/Sub gRPC API: calls gRPC
- Java context → Java configuration: reads options
java/src/main/java/utility/CommonContext.java - Java context → Java session auth: logs in
java/src/main/java/utility/CommonContext.java - Java context → Event parser: deserializes events
java/src/main/java/utility/CommonContext.java - Java context → Trace interceptor: configures interceptor
java/src/main/java/utility/CommonContext.java - Topic discovery → Java context: uses context
java/src/main/java/genericpubsub/GetTopic.java - Schema discovery → Java context: uses context
java/src/main/java/genericpubsub/GetSchema.java - Schema discovery → Topic discovery: uses topic lookup
java/src/main/java/genericpubsub/GetSchema.java - Event publishing → Java context: uses context
java/src/main/java/genericpubsub/Publish.java - Stream publishing → Event publishing: reuses publisher
java/src/main/java/genericpubsub/PublishStream.java - Event subscription → Java context: uses context
java/src/main/java/genericpubsub/Subscribe.java - Managed subscription → Java context: uses context
java/src/main/java/genericpubsub/ManagedSubscribe.java - Account update app → Account event utilities: uses helpers
java/src/main/java/accountupdateapp/AccountListener.java - Account update app → Java context: uses context
java/src/main/java/accountupdateapp/AccountListener.java - Account update app → Event publishing: publishes events
java/src/main/java/accountupdateapp/AccountListener.java - Account update app → Event subscription: subscribes
java/src/main/java/accountupdateapp/AccountListener.java - Python Pub/Sub client → Salesforce platform: authenticates and calls
- Inventory workflow → Python Pub/Sub client: uses client
python/InventoryAppExample/InventoryApp.py - Inventory workflow → Change header utility: decodes change fields
python/InventoryAppExample/InventoryApp.py - Salesforce listener → Python Pub/Sub client: uses client
python/InventoryAppExample/SalesforceListener.py - Salesforce listener → Change header utility: processes headers
python/InventoryAppExample/SalesforceListener.py