@@ -78,7 +78,7 @@ func processConfig(inputConfig *Config) (*Config, error) {
7878 dbosConfig .DatabaseSchema = _DEFAULT_SYSTEM_DB_SCHEMA
7979 }
8080 if dbosConfig .Serializer == nil {
81- dbosConfig .Serializer = NewJSONSerializer ()
81+ dbosConfig .Serializer = NewGobSerializer ()
8282 }
8383
8484 // Override with environment variables if set
@@ -213,6 +213,7 @@ func WithValue(ctx DBOSContext, key, val any) DBOSContext {
213213 applicationVersion : dbosCtx .applicationVersion ,
214214 executorID : dbosCtx .executorID ,
215215 applicationID : dbosCtx .applicationID ,
216+ serializer : dbosCtx .serializer ,
216217 }
217218 childCtx .launched .Store (launched )
218219 return childCtx
@@ -241,6 +242,7 @@ func WithoutCancel(ctx DBOSContext) DBOSContext {
241242 applicationVersion : dbosCtx .applicationVersion ,
242243 executorID : dbosCtx .executorID ,
243244 applicationID : dbosCtx .applicationID ,
245+ serializer : dbosCtx .serializer ,
244246 }
245247 childCtx .launched .Store (launched )
246248 return childCtx
@@ -268,6 +270,7 @@ func WithTimeout(ctx DBOSContext, timeout time.Duration) (DBOSContext, context.C
268270 applicationVersion : dbosCtx .applicationVersion ,
269271 executorID : dbosCtx .executorID ,
270272 applicationID : dbosCtx .applicationID ,
273+ serializer : dbosCtx .serializer ,
271274 }
272275 childCtx .launched .Store (launched )
273276 return childCtx , cancelFunc
@@ -362,19 +365,21 @@ func NewDBOSContext(ctx context.Context, inputConfig Config) (DBOSContext, error
362365 initExecutor .logger = config .Logger
363366 initExecutor .logger .Info ("Initializing DBOS context" , "app_name" , config .AppName , "dbos_version" , getDBOSVersion ())
364367
365- // Register types we serialize with gob
366- var t time.Time
367- safeGobRegister (t , initExecutor .logger )
368- var ws []WorkflowStatus
369- safeGobRegister (ws , initExecutor .logger )
370- var si []StepInfo
371- safeGobRegister (si , initExecutor .logger )
372-
373368 // Initialize global variables from processed config (already handles env vars and defaults)
374369 initExecutor .applicationVersion = config .ApplicationVersion
375370 initExecutor .executorID = config .ExecutorID
376371 initExecutor .serializer = config .Serializer
377372
373+ // Register types we serialize with gob (only if using GobSerializer)
374+ if isGobSerializer (initExecutor .serializer ) {
375+ var t time.Time
376+ safeGobRegister (t , initExecutor .logger )
377+ var ws []WorkflowStatus
378+ safeGobRegister (ws , initExecutor .logger )
379+ var si []StepInfo
380+ safeGobRegister (si , initExecutor .logger )
381+ }
382+
378383 initExecutor .applicationID = os .Getenv ("DBOS__APPID" )
379384
380385 newSystemDatabaseInputs := newSystemDatabaseInput {
0 commit comments