Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実践CRDT
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
tamadeveloper
April 14, 2026
Programming
710
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
実践CRDT
Core DataとCloudKitによるリッチテキスト同期モデルの構築
tamadeveloper
April 14, 2026
Other Decks in Programming
See All in Programming
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
350
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
520
仕様駆動開発の消費期限
watany
20
9.1k
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
32
20k
Dockerfile CMD for Node.js
grazie1999
0
140
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.3k
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.2k
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
180
「人を評価する AI」の設計と実装
ryoyanara
0
260
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
Hono + Inertia + React で LP を構築した話
oukayuka
2
180
業務時間外もAIに働いてもらう話
colorful12
2
8.4k
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
750
A Soul's Torment
seathinner
6
3.5k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
480
A designer walks into a library…
pauljervisheath
211
24k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.5k
Transcript
Practical CRDT Building a Rich-Text Sync Model with Core Data
and CloudKit
Kazushi Oenoki FirstSeed Inc.
None
None
None
id content ... 12 Project Alpha Kicko ff ... ...
Note
Merging is hard
CRDT Con fl ict-free Replicated Data Types
None
None
None
CRDT 101 Don't store strings. Store identities, relationships &
states.
Hello H ❌ ✅ e l l o
Hello H ❌ ✅ e l l o ID: 1
2 3 4 5
Hello H ❌ ✅ e l l o ID: 1
2 3 4 5 prevID: nil 1 2 3 4
Hello H ❌ ✅ e l l o ID: 1
2 3 4 5 prevID: nil 1 2 3 4 timestamp: ... ... ... ... ...
ABC ABC
A1BC AB2C
A 1 B C A1BC AB2C
A B 2 C A1BC AB2C
A 1 B C A1B2C A1B2C 2
A 1 🪦 C A12C A12C 2
None
Core Data First party Highly scalable High Performance Concurrent writes
Crash-safe persistent
CloudKit First party Privacy No sign-in / sign-up No server
management Shareable Free
CRDTEntity id: Int64 prevEntityID: Int64 content: String timestamp: Date isErased:
Bool note: Note Note id: UUID ... entities: [CRDTEntity]
CRDTImage url: String width: CGFloat height: CGFloat CRDTEntity id: Int64
prevEntityID: Int64 content: String timestamp: Date isErased: Bool
CRDTChar style: Int32 CRDTEntity id: Int64 prevEntityID: Int64 content: String
timestamp: Date isErased: Bool
CRDTList indentLevel: Int32 CRDTEntity id: Int64 prevEntityID: Int64 CRDTCheckBox isChecked:
Bool CRDTOrderedList marker: String CRDTUnorderedList style: Int32
CRDTHeader style: Int32 CRDTCodeBlock CRDTEntity id: Int64 prevEntityID: Int64 content:
String timestamp: Date isErased: Bool CRDTBlockQuote
None
None
None
None
None
None
CRDTEntity id: Int64 prevEntityID: Int64 content: String timestamp: Date isErased:
Bool note: Note Note id: UUID ... entities: [CRDTEntity]
None
CRDTEntity id: Int64 prevEntityID: Int64 content: String timestamp: Date isErased:
Bool note: Note Note id: UUID ... entities: [CRDTEntity]
CRDTEntity id: Int64 prevEntityID: Int64 content: String timestamp: Date isErased:
Bool noteID: UUID segment: Int32 Note id: UUID ...
NoteData id: UUID assetData: Data segment: Int32 ... note: Note
Note id: UUID ... data: [NoteData]
None
None
CRDT Powerful concept Beyond text Adaptable model Deep theory
Thank you Enjoy your stay in Japan!