Tangled Code Forge: AT Protocol 기반의 연합형 Git 협업
탈중앙화된 코드 협업
Tangled는 GitHub나 GitLab과 같은 중앙 집중식 코드 저장소의 연합형 대안으로 자리매김하고 있습니다. Tangled는 AT Protocol을 활용하여 개발자가 자신의 코드, CI 러너, API 서버를 직접 호스팅하면서도 통합되고 상호 운용 가능한 네트워크의 일부로 남을 수 있도록 합니다. 이러한 접근 방식은 이슈, 풀 리퀘스트, 댓글을 포함한 프로젝트 데이터가 저장소 소유자의 통제하에 휴대성을 유지하도록 함으로써 벤더 종속성 문제를 해결하는 것을 목표로 합니다.
아키텍처 개편 및 성능 향상
최신 릴리스에서는 글로벌 성능을 개선하기 위해 상당한 아키텍처 변화를 도입했습니다. 이전에는 Tangled가 백엔드와 UI를 모두 처리하는 Go 기반의 모놀리스에 의존했습니다. 새로운 아키텍처는 이러한 구성 요소를 분리합니다:
- 프론트엔드: 엣지에 배포되는 새로운 Svelte 기반 프론트엔드.
- 인덱서:
bobbin이라 불리는 Rust로 작성된 디스크리스 인메모리 인덱서 서비스로, 지연 시간을 줄이기 위해 11개 이상의 글로벌 리전에 배포됨. - Knot2: 커스텀 Git 서버와 SSH 서버를 번들로 제공하는 Rust 기반의 재작성된 서버로, 저장소의 기본 호스트 역할을 수행.
협업 객체 (COBs)
Tangled는 이슈, 풀 리퀘스트, 댓글 및 반응이 Git 저장소 내에 직접 협업 객체(COBs)로 저장되는 새로운 데이터 모델을 도입했습니다. 이러한 기록은 Git 객체 체인으로 저장되어 프로젝트의 메타데이터가 소스 코드와 불가분하게 연결되도록 합니다. 데이터 무결성을 보장하고 무단 수정을 방지하기 위해, 이 시스템은 org.tangled.graph.attestation 레코드를 사용하여 Knot 서버와 사용자의 개인 데이터 서버(PDS) 간의 양방향 검증을 허용합니다.
조직 및 워크플로우 업데이트
이제 조직이 AT Protocol에서 일급 시민으로 지원됩니다. 각 조직은 고유한 DID와 핸들을 부여받아 위임된 비밀번호 없는 액세스 관리가 가능합니다. 또한, 플랫폼은 Git 및 Jujutsu 사용자를 위한 스택형 PR을 지원하도록 풀 리퀘스트 흐름을 전면 개편했으며, 버전 간 변경 사항을 검토하기 위한 interdiff 지원도 포함되었습니다.
커뮤니티 피드백 및 토론
커뮤니티는 프로젝트의 목표에 대해 열광적인 반응을 보이고 있지만, 초기 피드백에서는 개선이 필요한 몇 가지 영역과 기술적 우려 사항이 지적되었습니다:
- UX 과제: 일부 사용자는 UI가 개선되었음에도 불구하고 명시적인 "댓글" 버튼과 같은 표준적인 편의 기능이 부족하여 코드 리뷰 중에 혼란을 겪는다고 언급했습니다.
- 연합의 신뢰성: 일반적인 우려 사항은 자체 호스팅 노드의 다운타임이 검색 가능성에 미치는 영향입니다. 콘텐츠가 인스턴스 간에 복제되는 경우가 많은 ActivityPub과 달리, 사용자는 특정 "Knot" 서버가 오프라인 상태가 되면 관련 코드나 이슈에 일시적으로 액세스할 수 없게 될 수 있다고 지적했습니다.
- 기술적 장애물: 초기 테스터들은 저장소 복제 및 경로 유효성 검사 문제를 보고했습니다. 또한 일부 사용자는 업계가 점차 SHA1에서 벗어나고 있다는 점을 언급하며 SHA256 Git 저장소에 대한 지원을 요청했습니다.
프로토콜 선택과 관련하여 일부 커뮤니티 구성원들은 왜 ActivityPub 대신 AT Protocol이 선택되었는지 의문을 제기했지만, 지지자들은 기존 AT Protocol 생태계가 사회적 및 협업 데이터를 위한 강력한 기반을 제공한다고 주장합니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch