15 pontos por xguru 2022-12-05 | 1 comentários | Compartilhar no WhatsApp
  • A Fiberplane é uma ferramenta de notebooks colaborativos para infraestrutura (resposta a incidentes e depuração de infraestrutura)
  • Ela ajudou a resolver dois grandes problemas

1. Operational Transformation

  • Era necessário um método para resolver conflitos nos recursos colaborativos do editor
  • Eles implementaram OT, o algoritmo usado pelo Google Docs, mas isso não foi uma tarefa simples
  • A principal causa da complexidade é que, à medida que aumenta o número de operações suportadas, o número de transformações a implementar cresce exponencialmente
  • A lógica para aplicar esse trabalho precisa existir tanto no cliente quanto no servidor. Divergências entre os dois podem causar efeitos colaterais (como notebooks diferentes entre colaboradores)
  • Implementar isso separadamente duas vezes, em ambos os lados, seria arriscado. A equipe também era pequena, e a quantidade de código duplicado aumentaria muito
  • Por isso, eles implementaram o algoritmo de backend em Rust. Depois, usaram WASM para executar exatamente o mesmo código também no frontend
  • Com isso, economizaram esforço de desenvolvimento e reduziram o risco de inconsistências

2. Providers

  • Outro problema era trazer dados de fontes externas para os notebooks
  • As fontes de dados têm formas e tamanhos variados, e nem sempre são facilmente acessíveis no navegador do usuário
  • Para resolver isso, eles criaram os plugins baseados em WASM chamados "Fiberplane Providers", que podem rodar tanto no navegador quanto em um servidor proxy hospedado pelo cliente
  • Essa abordagem também seria possível com JavaScript, mas o WASM oferece as seguintes vantagens
    • Melhor desempenho
    • Possibilidade de escrever plugins em qualquer linguagem suportada por WASM
    • Os plugins WASM são executados em sandbox, limitando as capacidades de providers maliciosos

fp-bindgen

  • O WebAssembly é útil em vários cenários
  • Ele pode simplificar o desenvolvimento do próprio produto ou permitir a execução segura de código que acessa a infraestrutura do cliente
  • Como o WASM é importante e bastante usado, eles também criaram uma ferramenta própria separada
  • O fp-bindgen é um gerador de bindings que funciona sobre código-fonte Rust
  • Ele pode ser usado para escrever plugins WASM em Rust e hospedá-los no navegador ou no ambiente Wasmer
  • O fp-bindgen foi disponibilizado como open source

1 comentários

 
xguru 2022-12-05

Eu gosto desse tipo de texto de startup.
Eles passam a impressão de contribuir com o ecossistema ao organizar de um jeito útil para os outros o problema que resolveram, enquanto também divulgam o próprio open source relacionado.

No GeekNews Weekly #177, foi apresentado QuickJS-emscripten: compilando e executando o QuickJS em WASM.
Aqui também estão adotando um conceito de plugin por meio de sandboxing. Parece que o uso de WASM como contêiner para sandboxing está se tornando o padrão.