The project in four partsDört bölümde proje
01
ProblemProblem
Two people edit the same sensor flow without a connection. One turns a smoothing step into a window of eight samples, so its output becomes a list. The other adds an overload check that expects a single number from that step. Each copy is valid. Merged, the data agrees and the system is wrong.
İki kişi aynı sensör akışını bağlantısız düzenliyor. Biri bir yumuşatma adımını 8 örneklik bir pencereye çeviriyor; adımın çıkışı bir listeye dönüşüyor. Öbürü o adımdan tek bir sayı bekleyen bir aşırı yük denetimi ekliyor. İki kopya da geçerli. Birleşince veri uyuşuyor, sistem yanlış oluyor.
02
ConstraintsKısıtlar
- Edits happen offline and arrive in any order, sometimes twice.
- A data merge cannot know that a threshold needs a number.
- A problem must point at the edits that caused it, not only at the broken line.
- The decision has to stay in the history.
- Değişiklikler çevrimdışı yapılır; herhangi bir sırayla, bazen iki kez gelir.
- Bir veri birleştirmesi, eşiğin sayı beklediğini bilemez.
- Bir sorun yalnızca bozuk çizgiyi değil, ona yol açan değişiklikleri göstermeli.
- Verilen karar geçmişte kalmalı.
03
DecisionKarar
Let Automerge merge the data: concurrent edits, stable ids, every conflicting value kept. Then run the rules of the flow again on the merged result and trace each problem back through the change history.
Veriyi Automerge birleştirsin: eş zamanlı değişiklikler, sabit kimlikler, çakışan her değer saklı. Ardından akışın kurallarını birleşik sonuç üzerinde yeniden çalıştır ve her sorunu değişiklik geçmişinde geriye doğru izle.
04
SolutionÇözüm
Four node types, three data types. Every edit is one change with a note of what it meant. After a merge, types, inputs, dangling connections, cycles and doubled inputs are checked; each problem opens the two edits behind it and the ways out, and the choice is written back as a change.
Dört düğüm türü, üç veri tipi. Her düzenleme, ne anlama geldiğini not eden tek bir değişiklik. Birleştirmeden sonra tipler, girişler, kopuk bağlantılar, döngüler ve çift girişler denetlenir; her sorun ardındaki iki değişikliği ve çıkış yollarını açar, seçim de bir değişiklik olarak geri yazılır.