Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate AFFiNE specified server codes into AFFiNE monorepo #381

Open
1 of 4 tasks
Brooooooklyn opened this issue Apr 13, 2023 · 4 comments
Open
1 of 4 tasks

Migrate AFFiNE specified server codes into AFFiNE monorepo #381

Brooooooklyn opened this issue Apr 13, 2023 · 4 comments
Assignees
Labels

Comments

@Brooooooklyn
Copy link
Member

Brooooooklyn commented Apr 13, 2023

Motivation

OctoBase contains too much AFFiNE business-related logic, which makes the scope of OctoBase very unclear. And it also makes it difficult for external developers to easily get started with OctoBase and contribute to it.
Then, using Rust to develop CRUD was very inefficient, and we wanted to be able to develop the business layer logic in Node.js and keep shipping fast.

Scope

  • lib0 encoding/decoding for yjs binary Port lib0 encoding/decoding #383
  • Port Subset of yjs
    • Subdocs
    • ...
  • High-level features top on yjs doc
    • Search
    • Blob persists abstract layer
    • Database integration
      • yjs Doc Sync
      • yjs binary persist
      • Database extensions like sqlite-crdt or prosgres-crdt
    • Vector database integration like datafusion
  • Languages and framework bindings
    • Node.js
      • TypeScript SDK
      • Nestjs integration
      • ...
    • Swift
    • Kotlin
    • ...

Migration path

  1. 4 of 4
    roadmap type:refactor
    Brooooooklyn himself65
@affine-bot
Copy link

Hello! Thank you for filing an issue.
If this is a bug report, please include relevant logs to help us debug the problem.

@darkskygit
Copy link
Member

i think it is reasonable to migrate curd to nodejs
I think there are two feature that should also be clear included in the scope of octobase:

  • storage: yjs cannot store binary at a reasonable cost, and ydoc also needs to be stored somewhere as a binary. storage is something that any application needs to consider in development
  • sync: sync protocol impl should be included in octobase to avoid repeated implementation in different clients

@Brooooooklyn
Copy link
Member Author

@darkskygit updated its into Database integration

@zuoxiaodong0815
Copy link
Contributor

I think the sub-doc sync and data upgrade may need consideration in future.

@Brooooooklyn Brooooooklyn self-assigned this Apr 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants