19 Ocak 2021 Salı

Single Source of Truth - SSOT

Giriş
Verinin tek bir kaynakta olması demek. Açıklaması şöyle
A single source of truth (SSOT) is the practice of aggregating the data from many systems within an organization to a single location. A SSOT is not a system, tool, or strategy, but rather a state of being for a company’s data in that it can all be found via a single reference point.
SSOT'yi sağlamak zor olabilir. Çünkü bir çok farklı birbirinden bağımsız bilgi sistemleri vardır. Açıklaması şöyle
The "ideal" implementation of SSOT as described above is rarely possible in most enterprises. This is because many organisations have multiple information systems, each of which needs access to data relating to the same entities (e.g., customer). Often these systems are purchased "off-the-shelf" from vendors and cannot be modified in non-trivial ways. Each of these various systems therefore needs to store its own version of common data or entities, and therefore each system must retain its own copy of a record (hence immediately violating the SSOT approach defined above). 

For example, an ERP (enterprise resource planning) system (such as SAP or Oracle e-Business Suite) may store a customer record; the CRM (customer relationship management) system also needs a copy of the customer record (or part of it) and the warehouse dispatch system might also need a copy of some or all of the customer data (e.g., shipping address). 

In cases where vendors do not support such modifications, it is not always possible to replace these records with pointers to the SSOT.
Farklı bilgi sistemlerini bir SSOT altında birleştirmek için izlenebilecek yöntemler var.

1. Derived Data
SSOT okunduktan sonra sadece bizi ilgilendiren veri türetilebilir. Bu verinin kendi veri tabanımızda saklanması gerekir. Mesela dağıtık bir oyun yazılımı düşünelim. SSOT'den bir senaryo yükleyelim. Senaryo tek, ancak benim açımdan bazı unsurlar dost, bazıları düşman. Bir başka oyuncu açısında tam tersi olabilir. Benim dostum onun düşmanı olabilir. 

2. Computation of Derived Value
Örnek
Elimizde bir alışveriş sepeti olsun. Bu sepete nesne eklenip çıkarıldıkça toplamın değişmesi gerekir. Toplamın ne zaman hesaplanacağı iki şekilde çözülür
2.1 Eager Hesaplama 
Hemen hesaplanır. Açıklaması şöyle
The benefit of eager computations is that the derived value is always synchronized with the source of truth. It's a good fit when the computation is cheap, such as the empty or number of cart lines views above. On the implementation side, the cart has one additional read-only field that stores the derived value.
2.2 Lazy Hesaplama 
Birisi toplamı isteyince hesaplanır. Açıklaması şöyle
On the opposite side, on-demand is adapted to expensive computations, such as the total cost view above. Because the computation is executed on access, the implementation doesn't need a property to store the value.
Bu durumda dirty şeklinde bir flag saklanır. compute() metodu çağrılınca dirty true ise tekrar hesaplama yapılır ve dirt false yapılır

3. SSOT ve Single Point of Failure
SSOT güzel bir şey olabileceği gibi, sıkıntı kaynağı da olabilir. Özellikle SSOT ölçeklenemiyor ve performans problemlerine sebep oluyorsa. Açıklaması şöyle
Single sources of truth also equate to single points of failure. Requiring all services to fetch User data from a single location means that our entire enterprise may grind to a halt when the User service has issues. SoTs also introduce performance and scalability bottlenecks. As the number of applications that need to access that User data grow both horizontally and vertically, the load on the User service will effectively grow exponentially.

Perhaps most importantly, adherence to single sources of truth severely hampers our ability to move forward with a workable architecture. This becomes apparent as teams wrap themselves further and further around the axle, arguing about the SoT for the such-and-such entity.
4. SSOT Olarak Kabul Edilen Şey Aslında Bizim Verimiz Değilse?
Veri aslında harici sistemlerden çekiliyor da olabilir. Bu durumda gerçekten SSOT sahibi mi oluyoruz?


Hiç yorum yok:

Yorum Gönder