Google Pub/Sub
Server-side event publishing to Google Cloud Pub/Sub topics. Each event is serialized as JSON, optionally keyed for per-message ordering, and published via the official @google-cloud/pubsub SDK. Supports Application Default Credentials, service account JSON, or pre-configured client injection. Per-rule topic, ordering-key, and attribute overrides. Idempotent topic provisioning with EU storage policy by default.
The destination ships inside @walkeros/server-destination-gcp alongside BigQuery; install the package once and import destinationPubSub for Pub/Sub.
Pub/Sub is a server destination in the walkerOS flow:
Publishes events to a Pub/Sub topic for fan-out, asynchronous processing, cross-region delivery, and integration with downstream consumers (Dataflow, Cloud Functions, Cloud Run, custom subscribers).
Installation
npm install @walkeros/server-destination-gcp- Integrated
- Bundled
import { startFlow } from '@walkeros/collector';
import { destinationPubSub } from '@walkeros/server-destination-gcp';
await startFlow({
destinations: {
pubsub: {
code: destinationPubSub,
config: {
settings: {
projectId: 'YOUR_PROJECT_ID',
topic: 'events',
},
},
},
},
});Add to your flow.json destinations:
"destinations": {
"pubsub": {
"package": "@walkeros/server-destination-gcp",
"import": "destinationPubSub",
"config": {
"settings": {
"projectId": "YOUR_PROJECT_ID",
"topic": "events"
}
}
}
}Configuration
This destination uses the standard destination config wrapper (consent, data, env, id, ...). For the shared fields see destination configuration. Package-specific fields live under config.settings and are listed below.
Settings
| Property | Type | Description | More |
|---|---|---|---|
client | any | Google Cloud Pub/Sub client instance | |
projectId | string | Google Cloud Project ID | |
topic | string | Pub/Sub topic short name (like events). The full resource name projects/<projectId>/topics/<topic> is built by the SDK. | |
credentials | any | Service account credentials as a JSON string or an object with client_email and private_key. Default: Application Default Credentials (ADC). (deprecated: use config.credentials) | |
apiEndpoint | string | Override Pub/Sub API endpoint. Useful for the local emulator (like localhost:8085). | |
orderingKey | any | Mapping value resolved per-event. Truthy enables per-key ordering for the publish. | |
attributes | any | Default per-event attribute map merged into every published message. Mapping.Map shape. |
Mapping
Per-event rules under config.mapping. For the standard rule fields (consent, condition, data, batch, name, policy) see mapping.
| Property | Type | Description | More |
|---|---|---|---|
topic | string | Per-rule topic override. Falls back to settings.topic if absent. | |
orderingKey | any | Per-rule ordering-key Mapping.Value. Overrides settings.orderingKey when set. | |
attributes | any | Per-rule attribute Mapping.Map merged on top of settings.attributes. |
Examples
Default publish
An event is published to the configured Pub/Sub topic with the full JSON event as the message body and no ordering key.
{
"name": "order complete",
"data": {
"id": "ORD-500",
"total": 199.99,
"currency": "EUR"
},
"context": {
"shopping": [
"complete",
0
]
},
"globals": {
"pagegroup": "shop"
},
"custom": {
"completely": "random"
},
"user": {
"id": "usr-789"
},
"nested": [
{
"entity": "product",
"data": {
"id": "ers",
"name": "Everyday Ruck Snack",
"color": "black",
"size": "l",
"price": 420
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "product",
"data": {
"id": "cc",
"name": "Cool Cap",
"size": "one size",
"price": 42
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "gift",
"data": {
"name": "Surprise"
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
}
],
"consent": {
"functional": true
},
"id": "52597d5269679369",
"trigger": "load",
"entity": "order",
"action": "complete",
"timestamp": 1700001100,
"timing": 3.14,
"source": {
"count": 1,
"trace": "1a2b3c4d5e6f70819a2b3c4d5e6f7081",
"type": "express",
"platform": "server"
}
}topic("events", {
"messageOrdering": false
});
publishMessage("events", {
"data": {
"0": 123,
"1": 34,
"2": 110,
"3": 97,
"4": 109,
"5": 101,
"6": 34,
"7": 58,
"8": 34,
"9": 111,
"10": 114,
"11": 100,
"12": 101,
"13": 114,
"14": 32,
"15": 99,
"16": 111,
"17": 109,
"18": 112,
"19": 108,
"20": 101,
"21": 116,
"22": 101,
"23": 34,
"24": 44,
"25": 34,
"26": 100,
"27": 97,
"28": 116,
"29": 97,
"30": 34,
"31": 58,
"32": 123,
"33": 34,
"34": 105,
"35": 100,
"36": 34,
"37": 58,
"38": 34,
"39": 79,
"40": 82,
"41": 68,
"42": 45,
"43": 53,
"44": 48,
"45": 48,
"46": 34,
"47": 44,
"48": 34,
"49": 116,
"50": 111,
"51": 116,
"52": 97,
"53": 108,
"54": 34,
"55": 58,
"56": 49,
"57": 57,
"58": 57,
"59": 46,
"60": 57,
"61": 57,
"62": 44,
"63": 34,
"64": 99,
"65": 117,
"66": 114,
"67": 114,
"68": 101,
"69": 110,
"70": 99,
"71": 121,
"72": 34,
"73": 58,
"74": 34,
"75": 69,
"76": 85,
"77": 82,
"78": 34,
"79": 125,
"80": 44,
"81": 34,
"82": 99,
"83": 111,
"84": 110,
"85": 116,
"86": 101,
"87": 120,
"88": 116,
"89": 34,
"90": 58,
"91": 123,
"92": 34,
"93": 115,
"94": 104,
"95": 111,
"96": 112,
"97": 112,
"98": 105,
"99": 110,
"100": 103,
"101": 34,
"102": 58,
"103": 91,
"104": 34,
"105": 99,
"106": 111,
"107": 109,
"108": 112,
"109": 108,
"110": 101,
"111": 116,
"112": 101,
"113": 34,
"114": 44,
"115": 48,
"116": 93,
"117": 125,
"118": 44,
"119": 34,
"120": 103,
"121": 108,
"122": 111,
"123": 98,
"124": 97,
"125": 108,
"126": 115,
"127": 34,
"128": 58,
"129": 123,
"130": 34,
"131": 112,
"132": 97,
"133": 103,
"134": 101,
"135": 103,
"136": 114,
"137": 111,
"138": 117,
"139": 112,
"140": 34,
"141": 58,
"142": 34,
"143": 115,
"144": 104,
"145": 111,
"146": 112,
"147": 34,
"148": 125,
"149": 44,
"150": 34,
"151": 99,
"152": 117,
"153": 115,
"154": 116,
"155": 111,
"156": 109,
"157": 34,
"158": 58,
"159": 123,
"160": 34,
"161": 99,
"162": 111,
"163": 109,
"164": 112,
"165": 108,
"166": 101,
"167": 116,
"168": 101,
"169": 108,
"170": 121,
"171": 34,
"172": 58,
"173": 34,
"174": 114,
"175": 97,
"176": 110,
"177": 100,
"178": 111,
"179": 109,
"180": 34,
"181": 125,
"182": 44,
"183": 34,
"184": 117,
"185": 115,
"186": 101,
"187": 114,
"188": 34,
"189": 58,
"190": 123,
"191": 34,
"192": 105,
"193": 100,
"194": 34,
"195": 58,
"196": 34,
"197": 117,
"198": 115,
"199": 114,
"200": 45,
"201": 55,
"202": 56,
"203": 57,
"204": 34,
"205": 125,
"206": 44,
"207": 34,
"208": 110,
"209": 101,
"210": 115,
"211": 116,
"212": 101,
"213": 100,
"214": 34,
"215": 58,
"216": 91,
"217": 123,
"218": 34,
"219": 101,
"220": 110,
"221": 116,
"222": 105,
"223": 116,
"224": 121,
"225": 34,
"226": 58,
"227": 34,
"228": 112,
"229": 114,
"230": 111,
"231": 100,
"232": 117,
"233": 99,
"234": 116,
"235": 34,
"236": 44,
"237": 34,
"238": 100,
"239": 97,
"240": 116,
"241": 97,
"242": 34,
"243": 58,
"244": 123,
"245": 34,
"246": 105,
"247": 100,
"248": 34,
"249": 58,
"250": 34,
"251": 101,
"252": 114,
"253": 115,
"254": 34,
"255": 44,
"256": 34,
"257": 110,
"258": 97,
"259": 109,
"260": 101,
"261": 34,
"262": 58,
"263": 34,
"264": 69,
"265": 118,
"266": 101,
"267": 114,
"268": 121,
"269": 100,
"270": 97,
"271": 121,
"272": 32,
"273": 82,
"274": 117,
"275": 99,
"276": 107,
"277": 32,
"278": 83,
"279": 110,
"280": 97,
"281": 99,
"282": 107,
"283": 34,
"284": 44,
"285": 34,
"286": 99,
"287": 111,
"288": 108,
"289": 111,
"290": 114,
"291": 34,
"292": 58,
"293": 34,
"294": 98,
"295": 108,
"296": 97,
"297": 99,
"298": 107,
"299": 34,
"300": 44,
"301": 34,
"302": 115,
"303": 105,
"304": 122,
"305": 101,
"306": 34,
"307": 58,
"308": 34,
"309": 108,
"310": 34,
"311": 44,
"312": 34,
"313": 112,
"314": 114,
"315": 105,
"316": 99,
"317": 101,
"318": 34,
"319": 58,
"320": 52,
"321": 50,
"322": 48,
"323": 125,
"324": 44,
"325": 34,
"326": 99,
"327": 111,
"328": 110,
"329": 116,
"330": 101,
"331": 120,
"332": 116,
"333": 34,
"334": 58,
"335": 123,
"336": 34,
"337": 115,
"338": 104,
"339": 111,
"340": 112,
"341": 112,
"342": 105,
"343": 110,
"344": 103,
"345": 34,
"346": 58,
"347": 91,
"348": 34,
"349": 99,
"350": 111,
"351": 109,
"352": 112,
"353": 108,
"354": 101,
"355": 116,
"356": 101,
"357": 34,
"358": 44,
"359": 48,
"360": 93,
"361": 125,
"362": 44,
"363": 34,
"364": 110,
"365": 101,
"366": 115,
"367": 116,
"368": 101,
"369": 100,
"370": 34,
"371": 58,
"372": 91,
"373": 93,
"374": 125,
"375": 44,
"376": 123,
"377": 34,
"378": 101,
"379": 110,
"380": 116,
"381": 105,
"382": 116,
"383": 121,
"384": 34,
"385": 58,
"386": 34,
"387": 112,
"388": 114,
"389": 111,
"390": 100,
"391": 117,
"392": 99,
"393": 116,
"394": 34,
"395": 44,
"396": 34,
"397": 100,
"398": 97,
"399": 116,
"400": 97,
"401": 34,
"402": 58,
"403": 123,
"404": 34,
"405": 105,
"406": 100,
"407": 34,
"408": 58,
"409": 34,
"410": 99,
"411": 99,
"412": 34,
"413": 44,
"414": 34,
"415": 110,
"416": 97,
"417": 109,
"418": 101,
"419": 34,
"420": 58,
"421": 34,
"422": 67,
"423": 111,
"424": 111,
"425": 108,
"426": 32,
"427": 67,
"428": 97,
"429": 112,
"430": 34,
"431": 44,
"432": 34,
"433": 115,
"434": 105,
"435": 122,
"436": 101,
"437": 34,
"438": 58,
"439": 34,
"440": 111,
"441": 110,
"442": 101,
"443": 32,
"444": 115,
"445": 105,
"446": 122,
"447": 101,
"448": 34,
"449": 44,
"450": 34,
"451": 112,
"452": 114,
"453": 105,
"454": 99,
"455": 101,
"456": 34,
"457": 58,
"458": 52,
"459": 50,
"460": 125,
"461": 44,
"462": 34,
"463": 99,
"464": 111,
"465": 110,
"466": 116,
"467": 101,
"468": 120,
"469": 116,
"470": 34,
"471": 58,
"472": 123,
"473": 34,
"474": 115,
"475": 104,
"476": 111,
"477": 112,
"478": 112,
"479": 105,
"480": 110,
"481": 103,
"482": 34,
"483": 58,
"484": 91,
"485": 34,
"486": 99,
"487": 111,
"488": 109,
"489": 112,
"490": 108,
"491": 101,
"492": 116,
"493": 101,
"494": 34,
"495": 44,
"496": 48,
"497": 93,
"498": 125,
"499": 44,
"500": 34,
"501": 110,
"502": 101,
"503": 115,
"504": 116,
"505": 101,
"506": 100,
"507": 34,
"508": 58,
"509": 91,
"510": 93,
"511": 125,
"512": 44,
"513": 123,
"514": 34,
"515": 101,
"516": 110,
"517": 116,
"518": 105,
"519": 116,
"520": 121,
"521": 34,
"522": 58,
"523": 34,
"524": 103,
"525": 105,
"526": 102,
"527": 116,
"528": 34,
"529": 44,
"530": 34,
"531": 100,
"532": 97,
"533": 116,
"534": 97,
"535": 34,
"536": 58,
"537": 123,
"538": 34,
"539": 110,
"540": 97,
"541": 109,
"542": 101,
"543": 34,
"544": 58,
"545": 34,
"546": 83,
"547": 117,
"548": 114,
"549": 112,
"550": 114,
"551": 105,
"552": 115,
"553": 101,
"554": 34,
"555": 125,
"556": 44,
"557": 34,
"558": 99,
"559": 111,
"560": 110,
"561": 116,
"562": 101,
"563": 120,
"564": 116,
"565": 34,
"566": 58,
"567": 123,
"568": 34,
"569": 115,
"570": 104,
"571": 111,
"572": 112,
"573": 112,
"574": 105,
"575": 110,
"576": 103,
"577": 34,
"578": 58,
"579": 91,
"580": 34,
"581": 99,
"582": 111,
"583": 109,
"584": 112,
"585": 108,
"586": 101,
"587": 116,
"588": 101,
"589": 34,
"590": 44,
"591": 48,
"592": 93,
"593": 125,
"594": 44,
"595": 34,
"596": 110,
"597": 101,
"598": 115,
"599": 116,
"600": 101,
"601": 100,
"602": 34,
"603": 58,
"604": 91,
"605": 93,
"606": 125,
"607": 93,
"608": 44,
"609": 34,
"610": 99,
"611": 111,
"612": 110,
"613": 115,
"614": 101,
"615": 110,
"616": 116,
"617": 34,
"618": 58,
"619": 123,
"620": 34,
"621": 102,
"622": 117,
"623": 110,
"624": 99,
"625": 116,
"626": 105,
"627": 111,
"628": 110,
"629": 97,
"630": 108,
"631": 34,
"632": 58,
"633": 116,
"634": 114,
"635": 117,
"636": 101,
"637": 125,
"638": 44,
"639": 34,
"640": 105,
"641": 100,
"642": 34,
"643": 58,
"644": 34,
"645": 53,
"646": 50,
"647": 53,
"648": 57,
"649": 55,
"650": 100,
"651": 53,
"652": 50,
"653": 54,
"654": 57,
"655": 54,
"656": 55,
"657": 57,
"658": 51,
"659": 54,
"660": 57,
"661": 34,
"662": 44,
"663": 34,
"664": 116,
"665": 114,
"666": 105,
"667": 103,
"668": 103,
"669": 101,
"670": 114,
"671": 34,
"672": 58,
"673": 34,
"674": 108,
"675": 111,
"676": 97,
"677": 100,
"678": 34,
"679": 44,
"680": 34,
"681": 101,
"682": 110,
"683": 116,
"684": 105,
"685": 116,
"686": 121,
"687": 34,
"688": 58,
"689": 34,
"690": 111,
"691": 114,
"692": 100,
"693": 101,
"694": 114,
"695": 34,
"696": 44,
"697": 34,
"698": 97,
"699": 99,
"700": 116,
"701": 105,
"702": 111,
"703": 110,
"704": 34,
"705": 58,
"706": 34,
"707": 99,
"708": 111,
"709": 109,
"710": 112,
"711": 108,
"712": 101,
"713": 116,
"714": 101,
"715": 34,
"716": 44,
"717": 34,
"718": 116,
"719": 105,
"720": 109,
"721": 101,
"722": 115,
"723": 116,
"724": 97,
"725": 109,
"726": 112,
"727": 34,
"728": 58,
"729": 49,
"730": 55,
"731": 48,
"732": 48,
"733": 48,
"734": 48,
"735": 49,
"736": 49,
"737": 48,
"738": 48,
"739": 44,
"740": 34,
"741": 116,
"742": 105,
"743": 109,
"744": 105,
"745": 110,
"746": 103,
"747": 34,
"748": 58,
"749": 51,
"750": 46,
"751": 49,
"752": 52,
"753": 44,
"754": 34,
"755": 115,
"756": 111,
"757": 117,
"758": 114,
"759": 99,
"760": 101,
"761": 34,
"762": 58,
"763": 123,
"764": 34,
"765": 99,
"766": 111,
"767": 117,
"768": 110,
"769": 116,
"770": 34,
"771": 58,
"772": 49,
"773": 44,
"774": 34,
"775": 116,
"776": 114,
"777": 97,
"778": 99,
"779": 101,
"780": 34,
"781": 58,
"782": 34,
"783": 49,
"784": 97,
"785": 50,
"786": 98,
"787": 51,
"788": 99,
"789": 52,
"790": 100,
"791": 53,
"792": 101,
"793": 54,
"794": 102,
"795": 55,
"796": 48,
"797": 56,
"798": 49,
"799": 57,
"800": 97,
"801": 50,
"802": 98,
"803": 51,
"804": 99,
"805": 52,
"806": 100,
"807": 53,
"808": 101,
"809": 54,
"810": 102,
"811": 55,
"812": 48,
"813": 56,
"814": 49,
"815": 34,
"816": 44,
"817": 34,
"818": 116,
"819": 121,
"820": 112,
"821": 101,
"822": 34,
"823": 58,
"824": 34,
"825": 101,
"826": 120,
"827": 112,
"828": 114,
"829": 101,
"830": 115,
"831": 115,
"832": 34,
"833": 44,
"834": 34,
"835": 112,
"836": 108,
"837": 97,
"838": 116,
"839": 102,
"840": 111,
"841": 114,
"842": 109,
"843": 34,
"844": 58,
"845": 34,
"846": 115,
"847": 101,
"848": 114,
"849": 118,
"850": 101,
"851": 114,
"852": 34,
"853": 44,
"854": 34,
"855": 114,
"856": 101,
"857": 108,
"858": 101,
"859": 97,
"860": 115,
"861": 101,
"862": 34,
"863": 58,
"864": 123,
"865": 34,
"866": 115,
"867": 101,
"868": 114,
"869": 118,
"870": 101,
"871": 114,
"872": 34,
"873": 58,
"874": 34,
"875": 52,
"876": 46,
"877": 56,
"878": 46,
"879": 48,
"880": 34,
"881": 125,
"882": 125,
"883": 125
}
})Mapped attributes
A mapping resolves a per-event attribute map, here exposing entity and action as Pub/Sub attributes for routing in subscribers.
{
"name": "order complete",
"data": {
"id": "ORD-500",
"total": 199.99,
"currency": "EUR"
},
"context": {
"shopping": [
"complete",
0
]
},
"globals": {
"pagegroup": "shop"
},
"custom": {
"completely": "random"
},
"user": {
"id": "usr-789"
},
"nested": [
{
"entity": "product",
"data": {
"id": "ers",
"name": "Everyday Ruck Snack",
"color": "black",
"size": "l",
"price": 420
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "product",
"data": {
"id": "cc",
"name": "Cool Cap",
"size": "one size",
"price": 42
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "gift",
"data": {
"name": "Surprise"
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
}
],
"consent": {
"functional": true
},
"id": "52597d5269679369",
"trigger": "load",
"entity": "order",
"action": "complete",
"timestamp": 1700001100,
"timing": 3.14,
"source": {
"count": 1,
"trace": "1a2b3c4d5e6f70819a2b3c4d5e6f7081",
"type": "express",
"platform": "server"
}
}{
"settings": {
"attributes": {
"entity": "entity",
"action": "action"
}
}
}topic("events", {
"messageOrdering": false
});
publishMessage("events", {
"data": {
"0": 123,
"1": 34,
"2": 110,
"3": 97,
"4": 109,
"5": 101,
"6": 34,
"7": 58,
"8": 34,
"9": 111,
"10": 114,
"11": 100,
"12": 101,
"13": 114,
"14": 32,
"15": 99,
"16": 111,
"17": 109,
"18": 112,
"19": 108,
"20": 101,
"21": 116,
"22": 101,
"23": 34,
"24": 44,
"25": 34,
"26": 100,
"27": 97,
"28": 116,
"29": 97,
"30": 34,
"31": 58,
"32": 123,
"33": 34,
"34": 105,
"35": 100,
"36": 34,
"37": 58,
"38": 34,
"39": 79,
"40": 82,
"41": 68,
"42": 45,
"43": 53,
"44": 48,
"45": 48,
"46": 34,
"47": 44,
"48": 34,
"49": 116,
"50": 111,
"51": 116,
"52": 97,
"53": 108,
"54": 34,
"55": 58,
"56": 49,
"57": 57,
"58": 57,
"59": 46,
"60": 57,
"61": 57,
"62": 44,
"63": 34,
"64": 99,
"65": 117,
"66": 114,
"67": 114,
"68": 101,
"69": 110,
"70": 99,
"71": 121,
"72": 34,
"73": 58,
"74": 34,
"75": 69,
"76": 85,
"77": 82,
"78": 34,
"79": 125,
"80": 44,
"81": 34,
"82": 99,
"83": 111,
"84": 110,
"85": 116,
"86": 101,
"87": 120,
"88": 116,
"89": 34,
"90": 58,
"91": 123,
"92": 34,
"93": 115,
"94": 104,
"95": 111,
"96": 112,
"97": 112,
"98": 105,
"99": 110,
"100": 103,
"101": 34,
"102": 58,
"103": 91,
"104": 34,
"105": 99,
"106": 111,
"107": 109,
"108": 112,
"109": 108,
"110": 101,
"111": 116,
"112": 101,
"113": 34,
"114": 44,
"115": 48,
"116": 93,
"117": 125,
"118": 44,
"119": 34,
"120": 103,
"121": 108,
"122": 111,
"123": 98,
"124": 97,
"125": 108,
"126": 115,
"127": 34,
"128": 58,
"129": 123,
"130": 34,
"131": 112,
"132": 97,
"133": 103,
"134": 101,
"135": 103,
"136": 114,
"137": 111,
"138": 117,
"139": 112,
"140": 34,
"141": 58,
"142": 34,
"143": 115,
"144": 104,
"145": 111,
"146": 112,
"147": 34,
"148": 125,
"149": 44,
"150": 34,
"151": 99,
"152": 117,
"153": 115,
"154": 116,
"155": 111,
"156": 109,
"157": 34,
"158": 58,
"159": 123,
"160": 34,
"161": 99,
"162": 111,
"163": 109,
"164": 112,
"165": 108,
"166": 101,
"167": 116,
"168": 101,
"169": 108,
"170": 121,
"171": 34,
"172": 58,
"173": 34,
"174": 114,
"175": 97,
"176": 110,
"177": 100,
"178": 111,
"179": 109,
"180": 34,
"181": 125,
"182": 44,
"183": 34,
"184": 117,
"185": 115,
"186": 101,
"187": 114,
"188": 34,
"189": 58,
"190": 123,
"191": 34,
"192": 105,
"193": 100,
"194": 34,
"195": 58,
"196": 34,
"197": 117,
"198": 115,
"199": 114,
"200": 45,
"201": 55,
"202": 56,
"203": 57,
"204": 34,
"205": 125,
"206": 44,
"207": 34,
"208": 110,
"209": 101,
"210": 115,
"211": 116,
"212": 101,
"213": 100,
"214": 34,
"215": 58,
"216": 91,
"217": 123,
"218": 34,
"219": 101,
"220": 110,
"221": 116,
"222": 105,
"223": 116,
"224": 121,
"225": 34,
"226": 58,
"227": 34,
"228": 112,
"229": 114,
"230": 111,
"231": 100,
"232": 117,
"233": 99,
"234": 116,
"235": 34,
"236": 44,
"237": 34,
"238": 100,
"239": 97,
"240": 116,
"241": 97,
"242": 34,
"243": 58,
"244": 123,
"245": 34,
"246": 105,
"247": 100,
"248": 34,
"249": 58,
"250": 34,
"251": 101,
"252": 114,
"253": 115,
"254": 34,
"255": 44,
"256": 34,
"257": 110,
"258": 97,
"259": 109,
"260": 101,
"261": 34,
"262": 58,
"263": 34,
"264": 69,
"265": 118,
"266": 101,
"267": 114,
"268": 121,
"269": 100,
"270": 97,
"271": 121,
"272": 32,
"273": 82,
"274": 117,
"275": 99,
"276": 107,
"277": 32,
"278": 83,
"279": 110,
"280": 97,
"281": 99,
"282": 107,
"283": 34,
"284": 44,
"285": 34,
"286": 99,
"287": 111,
"288": 108,
"289": 111,
"290": 114,
"291": 34,
"292": 58,
"293": 34,
"294": 98,
"295": 108,
"296": 97,
"297": 99,
"298": 107,
"299": 34,
"300": 44,
"301": 34,
"302": 115,
"303": 105,
"304": 122,
"305": 101,
"306": 34,
"307": 58,
"308": 34,
"309": 108,
"310": 34,
"311": 44,
"312": 34,
"313": 112,
"314": 114,
"315": 105,
"316": 99,
"317": 101,
"318": 34,
"319": 58,
"320": 52,
"321": 50,
"322": 48,
"323": 125,
"324": 44,
"325": 34,
"326": 99,
"327": 111,
"328": 110,
"329": 116,
"330": 101,
"331": 120,
"332": 116,
"333": 34,
"334": 58,
"335": 123,
"336": 34,
"337": 115,
"338": 104,
"339": 111,
"340": 112,
"341": 112,
"342": 105,
"343": 110,
"344": 103,
"345": 34,
"346": 58,
"347": 91,
"348": 34,
"349": 99,
"350": 111,
"351": 109,
"352": 112,
"353": 108,
"354": 101,
"355": 116,
"356": 101,
"357": 34,
"358": 44,
"359": 48,
"360": 93,
"361": 125,
"362": 44,
"363": 34,
"364": 110,
"365": 101,
"366": 115,
"367": 116,
"368": 101,
"369": 100,
"370": 34,
"371": 58,
"372": 91,
"373": 93,
"374": 125,
"375": 44,
"376": 123,
"377": 34,
"378": 101,
"379": 110,
"380": 116,
"381": 105,
"382": 116,
"383": 121,
"384": 34,
"385": 58,
"386": 34,
"387": 112,
"388": 114,
"389": 111,
"390": 100,
"391": 117,
"392": 99,
"393": 116,
"394": 34,
"395": 44,
"396": 34,
"397": 100,
"398": 97,
"399": 116,
"400": 97,
"401": 34,
"402": 58,
"403": 123,
"404": 34,
"405": 105,
"406": 100,
"407": 34,
"408": 58,
"409": 34,
"410": 99,
"411": 99,
"412": 34,
"413": 44,
"414": 34,
"415": 110,
"416": 97,
"417": 109,
"418": 101,
"419": 34,
"420": 58,
"421": 34,
"422": 67,
"423": 111,
"424": 111,
"425": 108,
"426": 32,
"427": 67,
"428": 97,
"429": 112,
"430": 34,
"431": 44,
"432": 34,
"433": 115,
"434": 105,
"435": 122,
"436": 101,
"437": 34,
"438": 58,
"439": 34,
"440": 111,
"441": 110,
"442": 101,
"443": 32,
"444": 115,
"445": 105,
"446": 122,
"447": 101,
"448": 34,
"449": 44,
"450": 34,
"451": 112,
"452": 114,
"453": 105,
"454": 99,
"455": 101,
"456": 34,
"457": 58,
"458": 52,
"459": 50,
"460": 125,
"461": 44,
"462": 34,
"463": 99,
"464": 111,
"465": 110,
"466": 116,
"467": 101,
"468": 120,
"469": 116,
"470": 34,
"471": 58,
"472": 123,
"473": 34,
"474": 115,
"475": 104,
"476": 111,
"477": 112,
"478": 112,
"479": 105,
"480": 110,
"481": 103,
"482": 34,
"483": 58,
"484": 91,
"485": 34,
"486": 99,
"487": 111,
"488": 109,
"489": 112,
"490": 108,
"491": 101,
"492": 116,
"493": 101,
"494": 34,
"495": 44,
"496": 48,
"497": 93,
"498": 125,
"499": 44,
"500": 34,
"501": 110,
"502": 101,
"503": 115,
"504": 116,
"505": 101,
"506": 100,
"507": 34,
"508": 58,
"509": 91,
"510": 93,
"511": 125,
"512": 44,
"513": 123,
"514": 34,
"515": 101,
"516": 110,
"517": 116,
"518": 105,
"519": 116,
"520": 121,
"521": 34,
"522": 58,
"523": 34,
"524": 103,
"525": 105,
"526": 102,
"527": 116,
"528": 34,
"529": 44,
"530": 34,
"531": 100,
"532": 97,
"533": 116,
"534": 97,
"535": 34,
"536": 58,
"537": 123,
"538": 34,
"539": 110,
"540": 97,
"541": 109,
"542": 101,
"543": 34,
"544": 58,
"545": 34,
"546": 83,
"547": 117,
"548": 114,
"549": 112,
"550": 114,
"551": 105,
"552": 115,
"553": 101,
"554": 34,
"555": 125,
"556": 44,
"557": 34,
"558": 99,
"559": 111,
"560": 110,
"561": 116,
"562": 101,
"563": 120,
"564": 116,
"565": 34,
"566": 58,
"567": 123,
"568": 34,
"569": 115,
"570": 104,
"571": 111,
"572": 112,
"573": 112,
"574": 105,
"575": 110,
"576": 103,
"577": 34,
"578": 58,
"579": 91,
"580": 34,
"581": 99,
"582": 111,
"583": 109,
"584": 112,
"585": 108,
"586": 101,
"587": 116,
"588": 101,
"589": 34,
"590": 44,
"591": 48,
"592": 93,
"593": 125,
"594": 44,
"595": 34,
"596": 110,
"597": 101,
"598": 115,
"599": 116,
"600": 101,
"601": 100,
"602": 34,
"603": 58,
"604": 91,
"605": 93,
"606": 125,
"607": 93,
"608": 44,
"609": 34,
"610": 99,
"611": 111,
"612": 110,
"613": 115,
"614": 101,
"615": 110,
"616": 116,
"617": 34,
"618": 58,
"619": 123,
"620": 34,
"621": 102,
"622": 117,
"623": 110,
"624": 99,
"625": 116,
"626": 105,
"627": 111,
"628": 110,
"629": 97,
"630": 108,
"631": 34,
"632": 58,
"633": 116,
"634": 114,
"635": 117,
"636": 101,
"637": 125,
"638": 44,
"639": 34,
"640": 105,
"641": 100,
"642": 34,
"643": 58,
"644": 34,
"645": 53,
"646": 50,
"647": 53,
"648": 57,
"649": 55,
"650": 100,
"651": 53,
"652": 50,
"653": 54,
"654": 57,
"655": 54,
"656": 55,
"657": 57,
"658": 51,
"659": 54,
"660": 57,
"661": 34,
"662": 44,
"663": 34,
"664": 116,
"665": 114,
"666": 105,
"667": 103,
"668": 103,
"669": 101,
"670": 114,
"671": 34,
"672": 58,
"673": 34,
"674": 108,
"675": 111,
"676": 97,
"677": 100,
"678": 34,
"679": 44,
"680": 34,
"681": 101,
"682": 110,
"683": 116,
"684": 105,
"685": 116,
"686": 121,
"687": 34,
"688": 58,
"689": 34,
"690": 111,
"691": 114,
"692": 100,
"693": 101,
"694": 114,
"695": 34,
"696": 44,
"697": 34,
"698": 97,
"699": 99,
"700": 116,
"701": 105,
"702": 111,
"703": 110,
"704": 34,
"705": 58,
"706": 34,
"707": 99,
"708": 111,
"709": 109,
"710": 112,
"711": 108,
"712": 101,
"713": 116,
"714": 101,
"715": 34,
"716": 44,
"717": 34,
"718": 116,
"719": 105,
"720": 109,
"721": 101,
"722": 115,
"723": 116,
"724": 97,
"725": 109,
"726": 112,
"727": 34,
"728": 58,
"729": 49,
"730": 55,
"731": 48,
"732": 48,
"733": 48,
"734": 48,
"735": 49,
"736": 49,
"737": 48,
"738": 48,
"739": 44,
"740": 34,
"741": 116,
"742": 105,
"743": 109,
"744": 105,
"745": 110,
"746": 103,
"747": 34,
"748": 58,
"749": 51,
"750": 46,
"751": 49,
"752": 52,
"753": 44,
"754": 34,
"755": 115,
"756": 111,
"757": 117,
"758": 114,
"759": 99,
"760": 101,
"761": 34,
"762": 58,
"763": 123,
"764": 34,
"765": 99,
"766": 111,
"767": 117,
"768": 110,
"769": 116,
"770": 34,
"771": 58,
"772": 49,
"773": 44,
"774": 34,
"775": 116,
"776": 114,
"777": 97,
"778": 99,
"779": 101,
"780": 34,
"781": 58,
"782": 34,
"783": 49,
"784": 97,
"785": 50,
"786": 98,
"787": 51,
"788": 99,
"789": 52,
"790": 100,
"791": 53,
"792": 101,
"793": 54,
"794": 102,
"795": 55,
"796": 48,
"797": 56,
"798": 49,
"799": 57,
"800": 97,
"801": 50,
"802": 98,
"803": 51,
"804": 99,
"805": 52,
"806": 100,
"807": 53,
"808": 101,
"809": 54,
"810": 102,
"811": 55,
"812": 48,
"813": 56,
"814": 49,
"815": 34,
"816": 44,
"817": 34,
"818": 116,
"819": 121,
"820": 112,
"821": 101,
"822": 34,
"823": 58,
"824": 34,
"825": 101,
"826": 120,
"827": 112,
"828": 114,
"829": 101,
"830": 115,
"831": 115,
"832": 34,
"833": 44,
"834": 34,
"835": 112,
"836": 108,
"837": 97,
"838": 116,
"839": 102,
"840": 111,
"841": 114,
"842": 109,
"843": 34,
"844": 58,
"845": 34,
"846": 115,
"847": 101,
"848": 114,
"849": 118,
"850": 101,
"851": 114,
"852": 34,
"853": 44,
"854": 34,
"855": 114,
"856": 101,
"857": 108,
"858": 101,
"859": 97,
"860": 115,
"861": 101,
"862": 34,
"863": 58,
"864": 123,
"865": 34,
"866": 115,
"867": 101,
"868": 114,
"869": 118,
"870": 101,
"871": 114,
"872": 34,
"873": 58,
"874": 34,
"875": 52,
"876": 46,
"877": 56,
"878": 46,
"879": 48,
"880": 34,
"881": 125,
"882": 125,
"883": 125
},
"attributes": {
"entity": "order",
"action": "complete"
}
})Mapped payload
A data mapping transforms the event payload before publish. The rewritten object becomes the Pub/Sub message body.
{
"name": "order complete",
"data": {
"id": "ORD-500",
"total": 199.99,
"currency": "EUR"
},
"context": {
"shopping": [
"complete",
0
]
},
"globals": {
"pagegroup": "shop"
},
"custom": {
"completely": "random"
},
"user": {
"id": "usr-789"
},
"nested": [
{
"entity": "product",
"data": {
"id": "ers",
"name": "Everyday Ruck Snack",
"color": "black",
"size": "l",
"price": 420
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "product",
"data": {
"id": "cc",
"name": "Cool Cap",
"size": "one size",
"price": 42
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "gift",
"data": {
"name": "Surprise"
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
}
],
"consent": {
"functional": true
},
"id": "52597d5269679369",
"trigger": "load",
"entity": "order",
"action": "complete",
"timestamp": 1700001100,
"timing": 3.14,
"source": {
"count": 1,
"trace": "1a2b3c4d5e6f70819a2b3c4d5e6f7081",
"type": "express",
"platform": "server"
}
}{
"data": {
"map": {
"order_id": "data.id",
"revenue": "data.total",
"currency": "data.currency"
}
}
}topic("events", {
"messageOrdering": false
});
publishMessage("events", {
"data": {
"0": 123,
"1": 34,
"2": 111,
"3": 114,
"4": 100,
"5": 101,
"6": 114,
"7": 95,
"8": 105,
"9": 100,
"10": 34,
"11": 58,
"12": 34,
"13": 79,
"14": 82,
"15": 68,
"16": 45,
"17": 53,
"18": 48,
"19": 48,
"20": 34,
"21": 44,
"22": 34,
"23": 114,
"24": 101,
"25": 118,
"26": 101,
"27": 110,
"28": 117,
"29": 101,
"30": 34,
"31": 58,
"32": 49,
"33": 57,
"34": 57,
"35": 46,
"36": 57,
"37": 57,
"38": 44,
"39": 34,
"40": 99,
"41": 117,
"42": 114,
"43": 114,
"44": 101,
"45": 110,
"46": 99,
"47": 121,
"48": 34,
"49": 58,
"50": 34,
"51": 69,
"52": 85,
"53": 82,
"54": 34,
"55": 125
}
})Ordering key from user
A mapping resolves the ordering key from event.user.id, enabling per-user ordering for this publish.
{
"name": "order complete",
"data": {
"id": "ORD-500",
"total": 199.99,
"currency": "EUR"
},
"context": {
"shopping": [
"complete",
0
]
},
"globals": {
"pagegroup": "shop"
},
"custom": {
"completely": "random"
},
"user": {
"id": "usr-789"
},
"nested": [
{
"entity": "product",
"data": {
"id": "ers",
"name": "Everyday Ruck Snack",
"color": "black",
"size": "l",
"price": 420
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "product",
"data": {
"id": "cc",
"name": "Cool Cap",
"size": "one size",
"price": 42
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "gift",
"data": {
"name": "Surprise"
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
}
],
"consent": {
"functional": true
},
"id": "52597d5269679369",
"trigger": "load",
"entity": "order",
"action": "complete",
"timestamp": 1700001100,
"timing": 3.14,
"source": {
"count": 1,
"trace": "1a2b3c4d5e6f70819a2b3c4d5e6f7081",
"type": "express",
"platform": "server"
}
}{
"settings": {
"orderingKey": "user.id"
}
}topic("events", {
"messageOrdering": true
});
publishMessage("events", {
"data": {
"0": 123,
"1": 34,
"2": 110,
"3": 97,
"4": 109,
"5": 101,
"6": 34,
"7": 58,
"8": 34,
"9": 111,
"10": 114,
"11": 100,
"12": 101,
"13": 114,
"14": 32,
"15": 99,
"16": 111,
"17": 109,
"18": 112,
"19": 108,
"20": 101,
"21": 116,
"22": 101,
"23": 34,
"24": 44,
"25": 34,
"26": 100,
"27": 97,
"28": 116,
"29": 97,
"30": 34,
"31": 58,
"32": 123,
"33": 34,
"34": 105,
"35": 100,
"36": 34,
"37": 58,
"38": 34,
"39": 79,
"40": 82,
"41": 68,
"42": 45,
"43": 53,
"44": 48,
"45": 48,
"46": 34,
"47": 44,
"48": 34,
"49": 116,
"50": 111,
"51": 116,
"52": 97,
"53": 108,
"54": 34,
"55": 58,
"56": 49,
"57": 57,
"58": 57,
"59": 46,
"60": 57,
"61": 57,
"62": 44,
"63": 34,
"64": 99,
"65": 117,
"66": 114,
"67": 114,
"68": 101,
"69": 110,
"70": 99,
"71": 121,
"72": 34,
"73": 58,
"74": 34,
"75": 69,
"76": 85,
"77": 82,
"78": 34,
"79": 125,
"80": 44,
"81": 34,
"82": 99,
"83": 111,
"84": 110,
"85": 116,
"86": 101,
"87": 120,
"88": 116,
"89": 34,
"90": 58,
"91": 123,
"92": 34,
"93": 115,
"94": 104,
"95": 111,
"96": 112,
"97": 112,
"98": 105,
"99": 110,
"100": 103,
"101": 34,
"102": 58,
"103": 91,
"104": 34,
"105": 99,
"106": 111,
"107": 109,
"108": 112,
"109": 108,
"110": 101,
"111": 116,
"112": 101,
"113": 34,
"114": 44,
"115": 48,
"116": 93,
"117": 125,
"118": 44,
"119": 34,
"120": 103,
"121": 108,
"122": 111,
"123": 98,
"124": 97,
"125": 108,
"126": 115,
"127": 34,
"128": 58,
"129": 123,
"130": 34,
"131": 112,
"132": 97,
"133": 103,
"134": 101,
"135": 103,
"136": 114,
"137": 111,
"138": 117,
"139": 112,
"140": 34,
"141": 58,
"142": 34,
"143": 115,
"144": 104,
"145": 111,
"146": 112,
"147": 34,
"148": 125,
"149": 44,
"150": 34,
"151": 99,
"152": 117,
"153": 115,
"154": 116,
"155": 111,
"156": 109,
"157": 34,
"158": 58,
"159": 123,
"160": 34,
"161": 99,
"162": 111,
"163": 109,
"164": 112,
"165": 108,
"166": 101,
"167": 116,
"168": 101,
"169": 108,
"170": 121,
"171": 34,
"172": 58,
"173": 34,
"174": 114,
"175": 97,
"176": 110,
"177": 100,
"178": 111,
"179": 109,
"180": 34,
"181": 125,
"182": 44,
"183": 34,
"184": 117,
"185": 115,
"186": 101,
"187": 114,
"188": 34,
"189": 58,
"190": 123,
"191": 34,
"192": 105,
"193": 100,
"194": 34,
"195": 58,
"196": 34,
"197": 117,
"198": 115,
"199": 114,
"200": 45,
"201": 55,
"202": 56,
"203": 57,
"204": 34,
"205": 125,
"206": 44,
"207": 34,
"208": 110,
"209": 101,
"210": 115,
"211": 116,
"212": 101,
"213": 100,
"214": 34,
"215": 58,
"216": 91,
"217": 123,
"218": 34,
"219": 101,
"220": 110,
"221": 116,
"222": 105,
"223": 116,
"224": 121,
"225": 34,
"226": 58,
"227": 34,
"228": 112,
"229": 114,
"230": 111,
"231": 100,
"232": 117,
"233": 99,
"234": 116,
"235": 34,
"236": 44,
"237": 34,
"238": 100,
"239": 97,
"240": 116,
"241": 97,
"242": 34,
"243": 58,
"244": 123,
"245": 34,
"246": 105,
"247": 100,
"248": 34,
"249": 58,
"250": 34,
"251": 101,
"252": 114,
"253": 115,
"254": 34,
"255": 44,
"256": 34,
"257": 110,
"258": 97,
"259": 109,
"260": 101,
"261": 34,
"262": 58,
"263": 34,
"264": 69,
"265": 118,
"266": 101,
"267": 114,
"268": 121,
"269": 100,
"270": 97,
"271": 121,
"272": 32,
"273": 82,
"274": 117,
"275": 99,
"276": 107,
"277": 32,
"278": 83,
"279": 110,
"280": 97,
"281": 99,
"282": 107,
"283": 34,
"284": 44,
"285": 34,
"286": 99,
"287": 111,
"288": 108,
"289": 111,
"290": 114,
"291": 34,
"292": 58,
"293": 34,
"294": 98,
"295": 108,
"296": 97,
"297": 99,
"298": 107,
"299": 34,
"300": 44,
"301": 34,
"302": 115,
"303": 105,
"304": 122,
"305": 101,
"306": 34,
"307": 58,
"308": 34,
"309": 108,
"310": 34,
"311": 44,
"312": 34,
"313": 112,
"314": 114,
"315": 105,
"316": 99,
"317": 101,
"318": 34,
"319": 58,
"320": 52,
"321": 50,
"322": 48,
"323": 125,
"324": 44,
"325": 34,
"326": 99,
"327": 111,
"328": 110,
"329": 116,
"330": 101,
"331": 120,
"332": 116,
"333": 34,
"334": 58,
"335": 123,
"336": 34,
"337": 115,
"338": 104,
"339": 111,
"340": 112,
"341": 112,
"342": 105,
"343": 110,
"344": 103,
"345": 34,
"346": 58,
"347": 91,
"348": 34,
"349": 99,
"350": 111,
"351": 109,
"352": 112,
"353": 108,
"354": 101,
"355": 116,
"356": 101,
"357": 34,
"358": 44,
"359": 48,
"360": 93,
"361": 125,
"362": 44,
"363": 34,
"364": 110,
"365": 101,
"366": 115,
"367": 116,
"368": 101,
"369": 100,
"370": 34,
"371": 58,
"372": 91,
"373": 93,
"374": 125,
"375": 44,
"376": 123,
"377": 34,
"378": 101,
"379": 110,
"380": 116,
"381": 105,
"382": 116,
"383": 121,
"384": 34,
"385": 58,
"386": 34,
"387": 112,
"388": 114,
"389": 111,
"390": 100,
"391": 117,
"392": 99,
"393": 116,
"394": 34,
"395": 44,
"396": 34,
"397": 100,
"398": 97,
"399": 116,
"400": 97,
"401": 34,
"402": 58,
"403": 123,
"404": 34,
"405": 105,
"406": 100,
"407": 34,
"408": 58,
"409": 34,
"410": 99,
"411": 99,
"412": 34,
"413": 44,
"414": 34,
"415": 110,
"416": 97,
"417": 109,
"418": 101,
"419": 34,
"420": 58,
"421": 34,
"422": 67,
"423": 111,
"424": 111,
"425": 108,
"426": 32,
"427": 67,
"428": 97,
"429": 112,
"430": 34,
"431": 44,
"432": 34,
"433": 115,
"434": 105,
"435": 122,
"436": 101,
"437": 34,
"438": 58,
"439": 34,
"440": 111,
"441": 110,
"442": 101,
"443": 32,
"444": 115,
"445": 105,
"446": 122,
"447": 101,
"448": 34,
"449": 44,
"450": 34,
"451": 112,
"452": 114,
"453": 105,
"454": 99,
"455": 101,
"456": 34,
"457": 58,
"458": 52,
"459": 50,
"460": 125,
"461": 44,
"462": 34,
"463": 99,
"464": 111,
"465": 110,
"466": 116,
"467": 101,
"468": 120,
"469": 116,
"470": 34,
"471": 58,
"472": 123,
"473": 34,
"474": 115,
"475": 104,
"476": 111,
"477": 112,
"478": 112,
"479": 105,
"480": 110,
"481": 103,
"482": 34,
"483": 58,
"484": 91,
"485": 34,
"486": 99,
"487": 111,
"488": 109,
"489": 112,
"490": 108,
"491": 101,
"492": 116,
"493": 101,
"494": 34,
"495": 44,
"496": 48,
"497": 93,
"498": 125,
"499": 44,
"500": 34,
"501": 110,
"502": 101,
"503": 115,
"504": 116,
"505": 101,
"506": 100,
"507": 34,
"508": 58,
"509": 91,
"510": 93,
"511": 125,
"512": 44,
"513": 123,
"514": 34,
"515": 101,
"516": 110,
"517": 116,
"518": 105,
"519": 116,
"520": 121,
"521": 34,
"522": 58,
"523": 34,
"524": 103,
"525": 105,
"526": 102,
"527": 116,
"528": 34,
"529": 44,
"530": 34,
"531": 100,
"532": 97,
"533": 116,
"534": 97,
"535": 34,
"536": 58,
"537": 123,
"538": 34,
"539": 110,
"540": 97,
"541": 109,
"542": 101,
"543": 34,
"544": 58,
"545": 34,
"546": 83,
"547": 117,
"548": 114,
"549": 112,
"550": 114,
"551": 105,
"552": 115,
"553": 101,
"554": 34,
"555": 125,
"556": 44,
"557": 34,
"558": 99,
"559": 111,
"560": 110,
"561": 116,
"562": 101,
"563": 120,
"564": 116,
"565": 34,
"566": 58,
"567": 123,
"568": 34,
"569": 115,
"570": 104,
"571": 111,
"572": 112,
"573": 112,
"574": 105,
"575": 110,
"576": 103,
"577": 34,
"578": 58,
"579": 91,
"580": 34,
"581": 99,
"582": 111,
"583": 109,
"584": 112,
"585": 108,
"586": 101,
"587": 116,
"588": 101,
"589": 34,
"590": 44,
"591": 48,
"592": 93,
"593": 125,
"594": 44,
"595": 34,
"596": 110,
"597": 101,
"598": 115,
"599": 116,
"600": 101,
"601": 100,
"602": 34,
"603": 58,
"604": 91,
"605": 93,
"606": 125,
"607": 93,
"608": 44,
"609": 34,
"610": 99,
"611": 111,
"612": 110,
"613": 115,
"614": 101,
"615": 110,
"616": 116,
"617": 34,
"618": 58,
"619": 123,
"620": 34,
"621": 102,
"622": 117,
"623": 110,
"624": 99,
"625": 116,
"626": 105,
"627": 111,
"628": 110,
"629": 97,
"630": 108,
"631": 34,
"632": 58,
"633": 116,
"634": 114,
"635": 117,
"636": 101,
"637": 125,
"638": 44,
"639": 34,
"640": 105,
"641": 100,
"642": 34,
"643": 58,
"644": 34,
"645": 53,
"646": 50,
"647": 53,
"648": 57,
"649": 55,
"650": 100,
"651": 53,
"652": 50,
"653": 54,
"654": 57,
"655": 54,
"656": 55,
"657": 57,
"658": 51,
"659": 54,
"660": 57,
"661": 34,
"662": 44,
"663": 34,
"664": 116,
"665": 114,
"666": 105,
"667": 103,
"668": 103,
"669": 101,
"670": 114,
"671": 34,
"672": 58,
"673": 34,
"674": 108,
"675": 111,
"676": 97,
"677": 100,
"678": 34,
"679": 44,
"680": 34,
"681": 101,
"682": 110,
"683": 116,
"684": 105,
"685": 116,
"686": 121,
"687": 34,
"688": 58,
"689": 34,
"690": 111,
"691": 114,
"692": 100,
"693": 101,
"694": 114,
"695": 34,
"696": 44,
"697": 34,
"698": 97,
"699": 99,
"700": 116,
"701": 105,
"702": 111,
"703": 110,
"704": 34,
"705": 58,
"706": 34,
"707": 99,
"708": 111,
"709": 109,
"710": 112,
"711": 108,
"712": 101,
"713": 116,
"714": 101,
"715": 34,
"716": 44,
"717": 34,
"718": 116,
"719": 105,
"720": 109,
"721": 101,
"722": 115,
"723": 116,
"724": 97,
"725": 109,
"726": 112,
"727": 34,
"728": 58,
"729": 49,
"730": 55,
"731": 48,
"732": 48,
"733": 48,
"734": 48,
"735": 49,
"736": 49,
"737": 48,
"738": 48,
"739": 44,
"740": 34,
"741": 116,
"742": 105,
"743": 109,
"744": 105,
"745": 110,
"746": 103,
"747": 34,
"748": 58,
"749": 51,
"750": 46,
"751": 49,
"752": 52,
"753": 44,
"754": 34,
"755": 115,
"756": 111,
"757": 117,
"758": 114,
"759": 99,
"760": 101,
"761": 34,
"762": 58,
"763": 123,
"764": 34,
"765": 99,
"766": 111,
"767": 117,
"768": 110,
"769": 116,
"770": 34,
"771": 58,
"772": 49,
"773": 44,
"774": 34,
"775": 116,
"776": 114,
"777": 97,
"778": 99,
"779": 101,
"780": 34,
"781": 58,
"782": 34,
"783": 49,
"784": 97,
"785": 50,
"786": 98,
"787": 51,
"788": 99,
"789": 52,
"790": 100,
"791": 53,
"792": 101,
"793": 54,
"794": 102,
"795": 55,
"796": 48,
"797": 56,
"798": 49,
"799": 57,
"800": 97,
"801": 50,
"802": 98,
"803": 51,
"804": 99,
"805": 52,
"806": 100,
"807": 53,
"808": 101,
"809": 54,
"810": 102,
"811": 55,
"812": 48,
"813": 56,
"814": 49,
"815": 34,
"816": 44,
"817": 34,
"818": 116,
"819": 121,
"820": 112,
"821": 101,
"822": 34,
"823": 58,
"824": 34,
"825": 101,
"826": 120,
"827": 112,
"828": 114,
"829": 101,
"830": 115,
"831": 115,
"832": 34,
"833": 44,
"834": 34,
"835": 112,
"836": 108,
"837": 97,
"838": 116,
"839": 102,
"840": 111,
"841": 114,
"842": 109,
"843": 34,
"844": 58,
"845": 34,
"846": 115,
"847": 101,
"848": 114,
"849": 118,
"850": 101,
"851": 114,
"852": 34,
"853": 44,
"854": 34,
"855": 114,
"856": 101,
"857": 108,
"858": 101,
"859": 97,
"860": 115,
"861": 101,
"862": 34,
"863": 58,
"864": 123,
"865": 34,
"866": 115,
"867": 101,
"868": 114,
"869": 118,
"870": 101,
"871": 114,
"872": 34,
"873": 58,
"874": 34,
"875": 52,
"876": 46,
"877": 56,
"878": 46,
"879": 48,
"880": 34,
"881": 125,
"882": 125,
"883": 125
},
"orderingKey": "usr-789"
})Topic override
A mapping rule overrides the destination default topic so order events are published to a dedicated topic.
{
"name": "order complete",
"data": {
"id": "ORD-500",
"total": 199.99,
"currency": "EUR"
},
"context": {
"shopping": [
"complete",
0
]
},
"globals": {
"pagegroup": "shop"
},
"custom": {
"completely": "random"
},
"user": {
"id": "usr-789"
},
"nested": [
{
"entity": "product",
"data": {
"id": "ers",
"name": "Everyday Ruck Snack",
"color": "black",
"size": "l",
"price": 420
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "product",
"data": {
"id": "cc",
"name": "Cool Cap",
"size": "one size",
"price": 42
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
},
{
"entity": "gift",
"data": {
"name": "Surprise"
},
"context": {
"shopping": [
"complete",
0
]
},
"nested": []
}
],
"consent": {
"functional": true
},
"id": "52597d5269679369",
"trigger": "load",
"entity": "order",
"action": "complete",
"timestamp": 1700001100,
"timing": 3.14,
"source": {
"count": 1,
"trace": "1a2b3c4d5e6f70819a2b3c4d5e6f7081",
"type": "express",
"platform": "server"
}
}{
"settings": {
"topic": "orders"
}
}topic("orders", {
"messageOrdering": false
});
publishMessage("orders", {
"data": {
"0": 123,
"1": 34,
"2": 110,
"3": 97,
"4": 109,
"5": 101,
"6": 34,
"7": 58,
"8": 34,
"9": 111,
"10": 114,
"11": 100,
"12": 101,
"13": 114,
"14": 32,
"15": 99,
"16": 111,
"17": 109,
"18": 112,
"19": 108,
"20": 101,
"21": 116,
"22": 101,
"23": 34,
"24": 44,
"25": 34,
"26": 100,
"27": 97,
"28": 116,
"29": 97,
"30": 34,
"31": 58,
"32": 123,
"33": 34,
"34": 105,
"35": 100,
"36": 34,
"37": 58,
"38": 34,
"39": 79,
"40": 82,
"41": 68,
"42": 45,
"43": 53,
"44": 48,
"45": 48,
"46": 34,
"47": 44,
"48": 34,
"49": 116,
"50": 111,
"51": 116,
"52": 97,
"53": 108,
"54": 34,
"55": 58,
"56": 49,
"57": 57,
"58": 57,
"59": 46,
"60": 57,
"61": 57,
"62": 44,
"63": 34,
"64": 99,
"65": 117,
"66": 114,
"67": 114,
"68": 101,
"69": 110,
"70": 99,
"71": 121,
"72": 34,
"73": 58,
"74": 34,
"75": 69,
"76": 85,
"77": 82,
"78": 34,
"79": 125,
"80": 44,
"81": 34,
"82": 99,
"83": 111,
"84": 110,
"85": 116,
"86": 101,
"87": 120,
"88": 116,
"89": 34,
"90": 58,
"91": 123,
"92": 34,
"93": 115,
"94": 104,
"95": 111,
"96": 112,
"97": 112,
"98": 105,
"99": 110,
"100": 103,
"101": 34,
"102": 58,
"103": 91,
"104": 34,
"105": 99,
"106": 111,
"107": 109,
"108": 112,
"109": 108,
"110": 101,
"111": 116,
"112": 101,
"113": 34,
"114": 44,
"115": 48,
"116": 93,
"117": 125,
"118": 44,
"119": 34,
"120": 103,
"121": 108,
"122": 111,
"123": 98,
"124": 97,
"125": 108,
"126": 115,
"127": 34,
"128": 58,
"129": 123,
"130": 34,
"131": 112,
"132": 97,
"133": 103,
"134": 101,
"135": 103,
"136": 114,
"137": 111,
"138": 117,
"139": 112,
"140": 34,
"141": 58,
"142": 34,
"143": 115,
"144": 104,
"145": 111,
"146": 112,
"147": 34,
"148": 125,
"149": 44,
"150": 34,
"151": 99,
"152": 117,
"153": 115,
"154": 116,
"155": 111,
"156": 109,
"157": 34,
"158": 58,
"159": 123,
"160": 34,
"161": 99,
"162": 111,
"163": 109,
"164": 112,
"165": 108,
"166": 101,
"167": 116,
"168": 101,
"169": 108,
"170": 121,
"171": 34,
"172": 58,
"173": 34,
"174": 114,
"175": 97,
"176": 110,
"177": 100,
"178": 111,
"179": 109,
"180": 34,
"181": 125,
"182": 44,
"183": 34,
"184": 117,
"185": 115,
"186": 101,
"187": 114,
"188": 34,
"189": 58,
"190": 123,
"191": 34,
"192": 105,
"193": 100,
"194": 34,
"195": 58,
"196": 34,
"197": 117,
"198": 115,
"199": 114,
"200": 45,
"201": 55,
"202": 56,
"203": 57,
"204": 34,
"205": 125,
"206": 44,
"207": 34,
"208": 110,
"209": 101,
"210": 115,
"211": 116,
"212": 101,
"213": 100,
"214": 34,
"215": 58,
"216": 91,
"217": 123,
"218": 34,
"219": 101,
"220": 110,
"221": 116,
"222": 105,
"223": 116,
"224": 121,
"225": 34,
"226": 58,
"227": 34,
"228": 112,
"229": 114,
"230": 111,
"231": 100,
"232": 117,
"233": 99,
"234": 116,
"235": 34,
"236": 44,
"237": 34,
"238": 100,
"239": 97,
"240": 116,
"241": 97,
"242": 34,
"243": 58,
"244": 123,
"245": 34,
"246": 105,
"247": 100,
"248": 34,
"249": 58,
"250": 34,
"251": 101,
"252": 114,
"253": 115,
"254": 34,
"255": 44,
"256": 34,
"257": 110,
"258": 97,
"259": 109,
"260": 101,
"261": 34,
"262": 58,
"263": 34,
"264": 69,
"265": 118,
"266": 101,
"267": 114,
"268": 121,
"269": 100,
"270": 97,
"271": 121,
"272": 32,
"273": 82,
"274": 117,
"275": 99,
"276": 107,
"277": 32,
"278": 83,
"279": 110,
"280": 97,
"281": 99,
"282": 107,
"283": 34,
"284": 44,
"285": 34,
"286": 99,
"287": 111,
"288": 108,
"289": 111,
"290": 114,
"291": 34,
"292": 58,
"293": 34,
"294": 98,
"295": 108,
"296": 97,
"297": 99,
"298": 107,
"299": 34,
"300": 44,
"301": 34,
"302": 115,
"303": 105,
"304": 122,
"305": 101,
"306": 34,
"307": 58,
"308": 34,
"309": 108,
"310": 34,
"311": 44,
"312": 34,
"313": 112,
"314": 114,
"315": 105,
"316": 99,
"317": 101,
"318": 34,
"319": 58,
"320": 52,
"321": 50,
"322": 48,
"323": 125,
"324": 44,
"325": 34,
"326": 99,
"327": 111,
"328": 110,
"329": 116,
"330": 101,
"331": 120,
"332": 116,
"333": 34,
"334": 58,
"335": 123,
"336": 34,
"337": 115,
"338": 104,
"339": 111,
"340": 112,
"341": 112,
"342": 105,
"343": 110,
"344": 103,
"345": 34,
"346": 58,
"347": 91,
"348": 34,
"349": 99,
"350": 111,
"351": 109,
"352": 112,
"353": 108,
"354": 101,
"355": 116,
"356": 101,
"357": 34,
"358": 44,
"359": 48,
"360": 93,
"361": 125,
"362": 44,
"363": 34,
"364": 110,
"365": 101,
"366": 115,
"367": 116,
"368": 101,
"369": 100,
"370": 34,
"371": 58,
"372": 91,
"373": 93,
"374": 125,
"375": 44,
"376": 123,
"377": 34,
"378": 101,
"379": 110,
"380": 116,
"381": 105,
"382": 116,
"383": 121,
"384": 34,
"385": 58,
"386": 34,
"387": 112,
"388": 114,
"389": 111,
"390": 100,
"391": 117,
"392": 99,
"393": 116,
"394": 34,
"395": 44,
"396": 34,
"397": 100,
"398": 97,
"399": 116,
"400": 97,
"401": 34,
"402": 58,
"403": 123,
"404": 34,
"405": 105,
"406": 100,
"407": 34,
"408": 58,
"409": 34,
"410": 99,
"411": 99,
"412": 34,
"413": 44,
"414": 34,
"415": 110,
"416": 97,
"417": 109,
"418": 101,
"419": 34,
"420": 58,
"421": 34,
"422": 67,
"423": 111,
"424": 111,
"425": 108,
"426": 32,
"427": 67,
"428": 97,
"429": 112,
"430": 34,
"431": 44,
"432": 34,
"433": 115,
"434": 105,
"435": 122,
"436": 101,
"437": 34,
"438": 58,
"439": 34,
"440": 111,
"441": 110,
"442": 101,
"443": 32,
"444": 115,
"445": 105,
"446": 122,
"447": 101,
"448": 34,
"449": 44,
"450": 34,
"451": 112,
"452": 114,
"453": 105,
"454": 99,
"455": 101,
"456": 34,
"457": 58,
"458": 52,
"459": 50,
"460": 125,
"461": 44,
"462": 34,
"463": 99,
"464": 111,
"465": 110,
"466": 116,
"467": 101,
"468": 120,
"469": 116,
"470": 34,
"471": 58,
"472": 123,
"473": 34,
"474": 115,
"475": 104,
"476": 111,
"477": 112,
"478": 112,
"479": 105,
"480": 110,
"481": 103,
"482": 34,
"483": 58,
"484": 91,
"485": 34,
"486": 99,
"487": 111,
"488": 109,
"489": 112,
"490": 108,
"491": 101,
"492": 116,
"493": 101,
"494": 34,
"495": 44,
"496": 48,
"497": 93,
"498": 125,
"499": 44,
"500": 34,
"501": 110,
"502": 101,
"503": 115,
"504": 116,
"505": 101,
"506": 100,
"507": 34,
"508": 58,
"509": 91,
"510": 93,
"511": 125,
"512": 44,
"513": 123,
"514": 34,
"515": 101,
"516": 110,
"517": 116,
"518": 105,
"519": 116,
"520": 121,
"521": 34,
"522": 58,
"523": 34,
"524": 103,
"525": 105,
"526": 102,
"527": 116,
"528": 34,
"529": 44,
"530": 34,
"531": 100,
"532": 97,
"533": 116,
"534": 97,
"535": 34,
"536": 58,
"537": 123,
"538": 34,
"539": 110,
"540": 97,
"541": 109,
"542": 101,
"543": 34,
"544": 58,
"545": 34,
"546": 83,
"547": 117,
"548": 114,
"549": 112,
"550": 114,
"551": 105,
"552": 115,
"553": 101,
"554": 34,
"555": 125,
"556": 44,
"557": 34,
"558": 99,
"559": 111,
"560": 110,
"561": 116,
"562": 101,
"563": 120,
"564": 116,
"565": 34,
"566": 58,
"567": 123,
"568": 34,
"569": 115,
"570": 104,
"571": 111,
"572": 112,
"573": 112,
"574": 105,
"575": 110,
"576": 103,
"577": 34,
"578": 58,
"579": 91,
"580": 34,
"581": 99,
"582": 111,
"583": 109,
"584": 112,
"585": 108,
"586": 101,
"587": 116,
"588": 101,
"589": 34,
"590": 44,
"591": 48,
"592": 93,
"593": 125,
"594": 44,
"595": 34,
"596": 110,
"597": 101,
"598": 115,
"599": 116,
"600": 101,
"601": 100,
"602": 34,
"603": 58,
"604": 91,
"605": 93,
"606": 125,
"607": 93,
"608": 44,
"609": 34,
"610": 99,
"611": 111,
"612": 110,
"613": 115,
"614": 101,
"615": 110,
"616": 116,
"617": 34,
"618": 58,
"619": 123,
"620": 34,
"621": 102,
"622": 117,
"623": 110,
"624": 99,
"625": 116,
"626": 105,
"627": 111,
"628": 110,
"629": 97,
"630": 108,
"631": 34,
"632": 58,
"633": 116,
"634": 114,
"635": 117,
"636": 101,
"637": 125,
"638": 44,
"639": 34,
"640": 105,
"641": 100,
"642": 34,
"643": 58,
"644": 34,
"645": 53,
"646": 50,
"647": 53,
"648": 57,
"649": 55,
"650": 100,
"651": 53,
"652": 50,
"653": 54,
"654": 57,
"655": 54,
"656": 55,
"657": 57,
"658": 51,
"659": 54,
"660": 57,
"661": 34,
"662": 44,
"663": 34,
"664": 116,
"665": 114,
"666": 105,
"667": 103,
"668": 103,
"669": 101,
"670": 114,
"671": 34,
"672": 58,
"673": 34,
"674": 108,
"675": 111,
"676": 97,
"677": 100,
"678": 34,
"679": 44,
"680": 34,
"681": 101,
"682": 110,
"683": 116,
"684": 105,
"685": 116,
"686": 121,
"687": 34,
"688": 58,
"689": 34,
"690": 111,
"691": 114,
"692": 100,
"693": 101,
"694": 114,
"695": 34,
"696": 44,
"697": 34,
"698": 97,
"699": 99,
"700": 116,
"701": 105,
"702": 111,
"703": 110,
"704": 34,
"705": 58,
"706": 34,
"707": 99,
"708": 111,
"709": 109,
"710": 112,
"711": 108,
"712": 101,
"713": 116,
"714": 101,
"715": 34,
"716": 44,
"717": 34,
"718": 116,
"719": 105,
"720": 109,
"721": 101,
"722": 115,
"723": 116,
"724": 97,
"725": 109,
"726": 112,
"727": 34,
"728": 58,
"729": 49,
"730": 55,
"731": 48,
"732": 48,
"733": 48,
"734": 48,
"735": 49,
"736": 49,
"737": 48,
"738": 48,
"739": 44,
"740": 34,
"741": 116,
"742": 105,
"743": 109,
"744": 105,
"745": 110,
"746": 103,
"747": 34,
"748": 58,
"749": 51,
"750": 46,
"751": 49,
"752": 52,
"753": 44,
"754": 34,
"755": 115,
"756": 111,
"757": 117,
"758": 114,
"759": 99,
"760": 101,
"761": 34,
"762": 58,
"763": 123,
"764": 34,
"765": 99,
"766": 111,
"767": 117,
"768": 110,
"769": 116,
"770": 34,
"771": 58,
"772": 49,
"773": 44,
"774": 34,
"775": 116,
"776": 114,
"777": 97,
"778": 99,
"779": 101,
"780": 34,
"781": 58,
"782": 34,
"783": 49,
"784": 97,
"785": 50,
"786": 98,
"787": 51,
"788": 99,
"789": 52,
"790": 100,
"791": 53,
"792": 101,
"793": 54,
"794": 102,
"795": 55,
"796": 48,
"797": 56,
"798": 49,
"799": 57,
"800": 97,
"801": 50,
"802": 98,
"803": 51,
"804": 99,
"805": 52,
"806": 100,
"807": 53,
"808": 101,
"809": 54,
"810": 102,
"811": 55,
"812": 48,
"813": 56,
"814": 49,
"815": 34,
"816": 44,
"817": 34,
"818": 116,
"819": 121,
"820": 112,
"821": 101,
"822": 34,
"823": 58,
"824": 34,
"825": 101,
"826": 120,
"827": 112,
"828": 114,
"829": 101,
"830": 115,
"831": 115,
"832": 34,
"833": 44,
"834": 34,
"835": 112,
"836": 108,
"837": 97,
"838": 116,
"839": 102,
"840": 111,
"841": 114,
"842": 109,
"843": 34,
"844": 58,
"845": 34,
"846": 115,
"847": 101,
"848": 114,
"849": 118,
"850": 101,
"851": 114,
"852": 34,
"853": 44,
"854": 34,
"855": 114,
"856": 101,
"857": 108,
"858": 101,
"859": 97,
"860": 115,
"861": 101,
"862": 34,
"863": 58,
"864": 123,
"865": 34,
"866": 115,
"867": 101,
"868": 114,
"869": 118,
"870": 101,
"871": 114,
"872": 34,
"873": 58,
"874": 34,
"875": 52,
"876": 46,
"877": 56,
"878": 46,
"879": 48,
"880": 34,
"881": 125,
"882": 125,
"883": 125
}
})Page view
A page view is published to the default topic with no ordering key, demonstrating the simplest publish path.
{
"name": "page view",
"data": {
"title": "Documentation",
"url": "https://example.com/docs"
},
"context": {
"dev": [
"test",
1
]
},
"globals": {
"pagegroup": "docs"
},
"custom": {
"completely": "random"
},
"user": {
"id": "us3r",
"device": "c00k13",
"session": "s3ss10n"
},
"nested": [
{
"entity": "child",
"data": {
"is": "subordinated"
}
}
],
"consent": {
"functional": true
},
"id": "408ff7a6af540165",
"trigger": "load",
"entity": "page",
"action": "view",
"timestamp": 1700001101,
"timing": 3.14,
"source": {
"count": 1,
"trace": "9f8e7d6c5b4a39281706f5e4d3c2b1a0",
"type": "express",
"platform": "server"
}
}topic("events", {
"messageOrdering": false
});
publishMessage("events", {
"data": {
"0": 123,
"1": 34,
"2": 110,
"3": 97,
"4": 109,
"5": 101,
"6": 34,
"7": 58,
"8": 34,
"9": 112,
"10": 97,
"11": 103,
"12": 101,
"13": 32,
"14": 118,
"15": 105,
"16": 101,
"17": 119,
"18": 34,
"19": 44,
"20": 34,
"21": 100,
"22": 97,
"23": 116,
"24": 97,
"25": 34,
"26": 58,
"27": 123,
"28": 34,
"29": 116,
"30": 105,
"31": 116,
"32": 108,
"33": 101,
"34": 34,
"35": 58,
"36": 34,
"37": 68,
"38": 111,
"39": 99,
"40": 117,
"41": 109,
"42": 101,
"43": 110,
"44": 116,
"45": 97,
"46": 116,
"47": 105,
"48": 111,
"49": 110,
"50": 34,
"51": 44,
"52": 34,
"53": 117,
"54": 114,
"55": 108,
"56": 34,
"57": 58,
"58": 34,
"59": 104,
"60": 116,
"61": 116,
"62": 112,
"63": 115,
"64": 58,
"65": 47,
"66": 47,
"67": 101,
"68": 120,
"69": 97,
"70": 109,
"71": 112,
"72": 108,
"73": 101,
"74": 46,
"75": 99,
"76": 111,
"77": 109,
"78": 47,
"79": 100,
"80": 111,
"81": 99,
"82": 115,
"83": 34,
"84": 125,
"85": 44,
"86": 34,
"87": 99,
"88": 111,
"89": 110,
"90": 116,
"91": 101,
"92": 120,
"93": 116,
"94": 34,
"95": 58,
"96": 123,
"97": 34,
"98": 100,
"99": 101,
"100": 118,
"101": 34,
"102": 58,
"103": 91,
"104": 34,
"105": 116,
"106": 101,
"107": 115,
"108": 116,
"109": 34,
"110": 44,
"111": 49,
"112": 93,
"113": 125,
"114": 44,
"115": 34,
"116": 103,
"117": 108,
"118": 111,
"119": 98,
"120": 97,
"121": 108,
"122": 115,
"123": 34,
"124": 58,
"125": 123,
"126": 34,
"127": 112,
"128": 97,
"129": 103,
"130": 101,
"131": 103,
"132": 114,
"133": 111,
"134": 117,
"135": 112,
"136": 34,
"137": 58,
"138": 34,
"139": 100,
"140": 111,
"141": 99,
"142": 115,
"143": 34,
"144": 125,
"145": 44,
"146": 34,
"147": 99,
"148": 117,
"149": 115,
"150": 116,
"151": 111,
"152": 109,
"153": 34,
"154": 58,
"155": 123,
"156": 34,
"157": 99,
"158": 111,
"159": 109,
"160": 112,
"161": 108,
"162": 101,
"163": 116,
"164": 101,
"165": 108,
"166": 121,
"167": 34,
"168": 58,
"169": 34,
"170": 114,
"171": 97,
"172": 110,
"173": 100,
"174": 111,
"175": 109,
"176": 34,
"177": 125,
"178": 44,
"179": 34,
"180": 117,
"181": 115,
"182": 101,
"183": 114,
"184": 34,
"185": 58,
"186": 123,
"187": 34,
"188": 105,
"189": 100,
"190": 34,
"191": 58,
"192": 34,
"193": 117,
"194": 115,
"195": 51,
"196": 114,
"197": 34,
"198": 44,
"199": 34,
"200": 100,
"201": 101,
"202": 118,
"203": 105,
"204": 99,
"205": 101,
"206": 34,
"207": 58,
"208": 34,
"209": 99,
"210": 48,
"211": 48,
"212": 107,
"213": 49,
"214": 51,
"215": 34,
"216": 44,
"217": 34,
"218": 115,
"219": 101,
"220": 115,
"221": 115,
"222": 105,
"223": 111,
"224": 110,
"225": 34,
"226": 58,
"227": 34,
"228": 115,
"229": 51,
"230": 115,
"231": 115,
"232": 49,
"233": 48,
"234": 110,
"235": 34,
"236": 125,
"237": 44,
"238": 34,
"239": 110,
"240": 101,
"241": 115,
"242": 116,
"243": 101,
"244": 100,
"245": 34,
"246": 58,
"247": 91,
"248": 123,
"249": 34,
"250": 101,
"251": 110,
"252": 116,
"253": 105,
"254": 116,
"255": 121,
"256": 34,
"257": 58,
"258": 34,
"259": 99,
"260": 104,
"261": 105,
"262": 108,
"263": 100,
"264": 34,
"265": 44,
"266": 34,
"267": 100,
"268": 97,
"269": 116,
"270": 97,
"271": 34,
"272": 58,
"273": 123,
"274": 34,
"275": 105,
"276": 115,
"277": 34,
"278": 58,
"279": 34,
"280": 115,
"281": 117,
"282": 98,
"283": 111,
"284": 114,
"285": 100,
"286": 105,
"287": 110,
"288": 97,
"289": 116,
"290": 101,
"291": 100,
"292": 34,
"293": 125,
"294": 125,
"295": 93,
"296": 44,
"297": 34,
"298": 99,
"299": 111,
"300": 110,
"301": 115,
"302": 101,
"303": 110,
"304": 116,
"305": 34,
"306": 58,
"307": 123,
"308": 34,
"309": 102,
"310": 117,
"311": 110,
"312": 99,
"313": 116,
"314": 105,
"315": 111,
"316": 110,
"317": 97,
"318": 108,
"319": 34,
"320": 58,
"321": 116,
"322": 114,
"323": 117,
"324": 101,
"325": 125,
"326": 44,
"327": 34,
"328": 105,
"329": 100,
"330": 34,
"331": 58,
"332": 34,
"333": 52,
"334": 48,
"335": 56,
"336": 102,
"337": 102,
"338": 55,
"339": 97,
"340": 54,
"341": 97,
"342": 102,
"343": 53,
"344": 52,
"345": 48,
"346": 49,
"347": 54,
"348": 53,
"349": 34,
"350": 44,
"351": 34,
"352": 116,
"353": 114,
"354": 105,
"355": 103,
"356": 103,
"357": 101,
"358": 114,
"359": 34,
"360": 58,
"361": 34,
"362": 108,
"363": 111,
"364": 97,
"365": 100,
"366": 34,
"367": 44,
"368": 34,
"369": 101,
"370": 110,
"371": 116,
"372": 105,
"373": 116,
"374": 121,
"375": 34,
"376": 58,
"377": 34,
"378": 112,
"379": 97,
"380": 103,
"381": 101,
"382": 34,
"383": 44,
"384": 34,
"385": 97,
"386": 99,
"387": 116,
"388": 105,
"389": 111,
"390": 110,
"391": 34,
"392": 58,
"393": 34,
"394": 118,
"395": 105,
"396": 101,
"397": 119,
"398": 34,
"399": 44,
"400": 34,
"401": 116,
"402": 105,
"403": 109,
"404": 101,
"405": 115,
"406": 116,
"407": 97,
"408": 109,
"409": 112,
"410": 34,
"411": 58,
"412": 49,
"413": 55,
"414": 48,
"415": 48,
"416": 48,
"417": 48,
"418": 49,
"419": 49,
"420": 48,
"421": 49,
"422": 44,
"423": 34,
"424": 116,
"425": 105,
"426": 109,
"427": 105,
"428": 110,
"429": 103,
"430": 34,
"431": 58,
"432": 51,
"433": 46,
"434": 49,
"435": 52,
"436": 44,
"437": 34,
"438": 115,
"439": 111,
"440": 117,
"441": 114,
"442": 99,
"443": 101,
"444": 34,
"445": 58,
"446": 123,
"447": 34,
"448": 99,
"449": 111,
"450": 117,
"451": 110,
"452": 116,
"453": 34,
"454": 58,
"455": 49,
"456": 44,
"457": 34,
"458": 116,
"459": 114,
"460": 97,
"461": 99,
"462": 101,
"463": 34,
"464": 58,
"465": 34,
"466": 57,
"467": 102,
"468": 56,
"469": 101,
"470": 55,
"471": 100,
"472": 54,
"473": 99,
"474": 53,
"475": 98,
"476": 52,
"477": 97,
"478": 51,
"479": 57,
"480": 50,
"481": 56,
"482": 49,
"483": 55,
"484": 48,
"485": 54,
"486": 102,
"487": 53,
"488": 101,
"489": 52,
"490": 100,
"491": 51,
"492": 99,
"493": 50,
"494": 98,
"495": 49,
"496": 97,
"497": 48,
"498": 34,
"499": 44,
"500": 34,
"501": 116,
"502": 121,
"503": 112,
"504": 101,
"505": 34,
"506": 58,
"507": 34,
"508": 101,
"509": 120,
"510": 112,
"511": 114,
"512": 101,
"513": 115,
"514": 115,
"515": 34,
"516": 44,
"517": 34,
"518": 112,
"519": 108,
"520": 97,
"521": 116,
"522": 102,
"523": 111,
"524": 114,
"525": 109,
"526": 34,
"527": 58,
"528": 34,
"529": 115,
"530": 101,
"531": 114,
"532": 118,
"533": 101,
"534": 114,
"535": 34,
"536": 44,
"537": 34,
"538": 114,
"539": 101,
"540": 108,
"541": 101,
"542": 97,
"543": 115,
"544": 101,
"545": 34,
"546": 58,
"547": 123,
"548": 34,
"549": 115,
"550": 101,
"551": 114,
"552": 118,
"553": 101,
"554": 114,
"555": 34,
"556": 58,
"557": 34,
"558": 52,
"559": 46,
"560": 56,
"561": 46,
"562": 48,
"563": 34,
"564": 125,
"565": 125,
"566": 125
}
})Authentication
Three modes, evaluated in order:
- Application Default Credentials (ADC). Nothing to configure beyond
projectId. Works on GCP-native runtimes (Cloud Run, Cloud Functions, GKE, GCE) where the runtime service account is attached, and locally withgcloud auth application-default login. - Service account JSON. Pass credentials via
config.credentials, either as a parsed object or a JSON string (the destination JSON-parses strings). Pair with$env.NAMEto inject from an environment variable. (The package-specificsettings.credentialsstill works but is deprecated.) - Pre-configured client. Pass an existing
PubSubSDK instance assettings.client. Useful for shared clients across destinations or custom transport configuration.
When settings.projectId and the credentials' project_id both resolve, the top-level settings.projectId wins. The runtime publish target stays unambiguous.
Ordering
orderingKey is a Mapping.Value resolved per event. Truthy resolved values enable per-key ordering, the topic handle is constructed with messageOrdering: true, and the resolved key flows on the publish.
{
"settings": {
"projectId": "my-project",
"topic": "user-events",
"orderingKey": "user.id"
}
}
Per-rule overrides live under mapping.<entity>.<action>.settings.orderingKey.
If a publish fails for an ordered key, Pub/Sub permanently halts subsequent publishes for that key until topic.resumePublishing(key) is called. The destination handles this automatically: on publish failure for an ordered key it calls resumePublishing immediately and re-throws so the caller observes the original error.
Attributes
settings.attributes is a Mapping.Map of attribute name to mapping value. Each value is resolved per event and stringified. Per-rule overrides under mapping.<entity>.<action>.settings.attributes are merged onto the defaults.
{
"settings": {
"projectId": "my-project",
"topic": "events",
"attributes": {
"tenant": "user.tenant_id",
"schema_version": { "value": "v4" }
}
}
}
Setup
Provision the topic once per environment:
walkeros setup destination.pubsubIdempotent: re-running on an existing topic logs setup: topic exists and runs drift detection. Drift on messageStoragePolicy.allowedPersistenceRegions, messageRetentionDuration, kmsKeyName, or labels emits WARN setup.drift {...} and never auto-mutates. Migrations are an operator decision.
config.setup:
false(default): no provisioning. Operator must run setup explicitly.true: provisions with safe defaults (EU multi-region storage policy).{ messageStoragePolicy, messageRetentionDuration, kmsKeyName, labels }: object form for explicit overrides.
Default storage regions: ['europe-west1', 'europe-west3', 'europe-west4'] (EU multi-region). Override messageStoragePolicy.allowedPersistenceRegions for projects with org policies that restrict geography.
The provisioning identity needs pubsub.topics.create and pubsub.topics.get on the project. The runtime publish identity needs roles/pubsub.publisher on the topic itself.
Subscription provisioning is owned by the Pub/Sub source, not this destination.
Emulator
The official Pub/Sub emulator runs locally for development:
gcloud beta emulators pubsub start --host-port=localhost:8085
export PUBSUB_EMULATOR_HOST=localhost:8085The SDK automatically picks up PUBSUB_EMULATOR_HOST. For explicit configuration, set settings.apiEndpoint (e.g. localhost:8085).
Simulate
walkeros push --simulate destination.pubsub runs offline with the package's mock Pub/Sub client and prints the publish it would make; nothing reaches GCP. The step's import (destinationPubSub) selects the Pub/Sub examples and mock, not BigQuery's.
success: true
destination.pubsub
mapping: none
call PubSub.topic.publishMessage({"data":"{\"name\":\"order complete\",...}"})Troubleshooting
NOT_FOUNDon publish: the topic does not exist. Runwalkeros setup destination.<id>once.PERMISSION_DENIED/UNAUTHENTICATED: the runtime service account lacksroles/pubsub.publisheron the topic, or ADC is not configured. The destination logs the actionable message including the topic and project IDs.- Ordering stuck: a previous publish for an ordering key failed. The destination calls
resumePublishingautomatically; if stalls persist, check publish-side error logs for the original failure.
Next steps
- Pub/Sub source for consuming events from a Pub/Sub topic
- GCP package overview for BigQuery and shared GCP setup