You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Should we broadcast directly and synchronously over HTTP like now? (django waits for the CDP API that runs blocking async)
Should we use the Python HogVM instead? (skips the plugin server being down)
Should we push all the messages to cdp_function_callbacks via Kafka?
Insert directly to cyclotron via Postgres?
Cancellation/retry support for broadcasts (e.g. error half way through queuing 100k emails and want to retry)
Metrics about sent/delivered/bounced (and capture these events)
Add "http"/"webhook" function type, make a URL that returns 200 and routes the incoming data to the function (think segment's source functions)
Add explicit export fun sendEmail syntax instead of the hacky return { 'sendEmail': sendEmail }
Layout templates, cloning broadcasts, defaults
Support more than one email provider, or block adding a second one
Release as early access
Release as public beta
Workflows
The work on Hog above gives use an interesting way to build workflows (aka the second part of messaging, which is currently out of scope):
Each node in a workflow can be its own Hog function that lives in its own path like workflow/{id}/{node_id}
All of these can be imported import('workflow/{id}/node/{id}')
Each imported code when running has its own globals --> each hog function gets its inputs, including encrypted ones
The entire workflow compiles into one large hog function (looped switch statement, similar to this) that imports and calls the different nodes as needed. Something like this:
Broadcasts
RFC: https://github.com/PostHog/product-internal/pull/663
MVP: #25719 split into 5 parts:
type
to theHogFunction
model. Type will be set todestination
for all existing functions.destination
functions on events, but also loadsemail
functions (shared provider code) into memory.destination
import
bytecode/files/code/functions in Hogprovider/email
, which exportssendEmail()
(runs the team's email provider's bytecode)Future work to do and things to think about:
person
for an email? How do we select the right one?cdp_function_callbacks
via Kafka?export fun sendEmail
syntax instead of the hackyreturn { 'sendEmail': sendEmail }
Workflows
The work on Hog above gives use an interesting way to build workflows (aka the second part of messaging, which is currently out of scope):
workflow/{id}/{node_id}
import('workflow/{id}/node/{id}')
The text was updated successfully, but these errors were encountered: