Skip to content

rewrite: Introduzir feature flags para roteamento entre legado e nova implementação #1041

Description

@ElioNeto

Parte do epic #1036

Objetivo

Implementar um mecanismo de feature flags que permita rotear chamadas entre o core TypeScript legado e o novo go-core, habilitando rollback instantâneo sem redeploy.

Design proposto

// packages/core/src/router.tsimport{flag}from'./flag'exportconstuseGoCore=flag<boolean>({key: 'go-core-enabled',default: false,})exportasyncfunctionspawnProcess(cmd: string,args: string[]){if(awaituseGoCore.isEnabled()){returngoCoreCLient.spawn(cmd,args)// nova implementação}returnlegacySpawner.spawn(cmd,args)// legado}

Tarefas

  • Avaliar se o sistema de flag em packages/core/src/flag/ já suporta o caso de uso
  • Criar flags por módulo: go-core-process, go-core-filesystem, go-core-session
  • Implementar camada de roteamento para cada módulo
  • Garantir que a flag pode ser alterada sem redeploy (env var ou config file)
  • Adicionar logging de qual implementação foi usada por requisição

Critérios de aceite

  • Rollback possível mudando apenas uma variável de ambiente
  • Flags granulares por módulo (não um switch geral)
  • Log indica qual implementação foi chamada
  • Documentado em docs/rewrite/feature-flags.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions