Każda poważna platforma wojskowego wywiadu w końcu napotyka ten sam strukturalny problem: pięć lub więcej dyscyplin wywiadowczych produkuje dane we własnym formacie, z własną prędkością i własną semantyką — a analitycy potrzebują zunifikowanego obrazu sytuacyjnego, który uwzględnia je wszystkie jednocześnie. Kompletny przewodnik po fuzji danych obronnych omawia potok przetwarzania w szerokim ujęciu. Niniejszy artykuł zagłębia się w warstwę schematu — kanoniczny model danych leżący pod silnikiem fuzji i zapewniający mu spójną podstawę działania.
Prawidłowe zaprojektowanie modelu danych to nie szczegół techniczny. Źle zaprojektowany schemat przenosi logikę specyficzną dla poszczególnych dyscyplin INT do warstwy aplikacji, sprawia, że zapytania krzyżowe między źródłami są kruche, a migracje schematu zamieniają się w wielotygodniowe zamrożenia platformy. Dobrze zaprojektowany model absorbuje nowe typy INT, obsługuje zapytania bi-temporalne i zachowuje proweniencję przez każdy etap fuzji. Ten artykuł omawia wszystkie decyzje, które decydują o tym, do której kategorii należy Twoja platforma.
Dlaczego każda dyscyplina INT wymaga innej adaptacji schematu
Pięć głównych dyscyplin wywiadowczych różni się nie tylko tym, co zbierają, ale także tym, jak te dane są ustrukturyzowane, z jaką prędkością napływają i jakie metadane są z natury dostępne. Te różnice nie są powierzchowne. Determinują logikę adaptera potrzebną przed ingresją do zunifikowanego modelu oraz ograniczają, jakie zapytania krzyżowe między źródłami są wykonalne.
HUMINT (wywiad osobowy) ma charakter przede wszystkim tekstowy. Raport HUMINT to narracyjny dokument opisujący to, co źródło zaobserwowało, usłyszało lub czego się dowiedziało. Znaczniki czasu są często nieprecyzyjne — raport może opisywać zdarzenie, które miało miejsce przez kilka dni, z niepewnością zarówno co do czasu, jak i lokalizacji. Najważniejszymi metadanymi jest ocena źródła: jak wiarygodne jest to konkretne źródło i jak wiarygodna jest ta konkretna informacja? Prędkość danych HUMINT jest niska — dziesiątki do setek raportów dziennie w ruchliwym punkcie zbierania, nie tysiące na sekundę.
SIGINT (wywiad sygnałowy) — obejmujący zarówno COMINT (łączność) jak i ELINT (elektroniczny) — charakteryzuje się wysoką prędkością, dużą strukturą i precyzją znacznika czasu do milisekund. Przechwycenie SIGINT lub detekcja emitera zawiera parametry częstotliwości, kąty namiarowe, obliczenia TDOA i charakterystyki modulacji. Treść semantyczna (co zostało powiedziane) jest często klasyfikowana oddzielnie od parametrów sygnału. Prędkość danych SIGINT może sięgać milionów rekordów na godzinę w nowoczesnym systemie zbierania obejmującym zakłócone środowisko elektromagnetyczne.
IMINT (wywiad obrazowy) produkuje ustrukturyzowane rekordy obserwacji wywiedzione z analizy obrazów: ramki ograniczające z etykietami klas encji i ocenami wiarygodności, współrzędne geolokalizacji, rozdzielczość terenową i znacznik czasu pobrania. Pojedyncze przejście satelity lub lotu drona może wygenerować tysiące rekordów detekcji obiektów. Wyzwaniem jest to, że detekcje IMINT są przestrzennymi migawkami — informują, gdzie coś było w danym momencie, a nie gdzie zmierza.
OSINT (wywiad ze źródeł otwartych) jest strukturalnie najbardziej heterogeniczny. Obejmuje posty w mediach społecznościowych, artykuły prasowe, analizy komercyjnych zdjęć satelitarnych, dane śledzenia lotów i kanały AIS ruchu morskiego. Każdy typ źródła ma własny schemat. OSINT jest również najmniej kontrolowany — jakość źródeł waha się od autorytatywnych publikacji rządowych po anonimowe, niezweryfikowane wpisy w mediach społecznościowych.
MASINT (wywiad pomiarowo-sygnaturowy) obejmuje pomiary zjawisk fizycznych: sejsmicznych, akustycznych, promieniowania jądrowego, sygnatur chemicznych/biologicznych i profili przekroju radarowego. Obserwacje MASINT są często pośrednie — wykrywają zjawisko (eksplozja, ruch pojazdu, emisja RF) zamiast bezpośrednio identyfikować encję. Łańcuch od obserwacji MASINT do identyfikacji encji wymaga jawnych kroków wnioskowania, które muszą być zamodelowane w schemacie.
Implikacja dla zunifikowanego modelu jest taka, że schemat musi uwzględniać tę różnorodność bez jej spłaszczania. Odpowiedzią jest typizowana koperta rdzeniowa z ładunkami rozszerzeń specyficznymi dla dyscypliny — wzorzec projektowy szczegółowo omówiony w serii budowanie potoku fuzji obronnej, część 1.
Kanoniczne typy encji w zunifikowanym modelu
Punktem wyjścia dla projektowania schematu jest zdefiniowanie taksonomii typów encji — wyczerpującej listy rzeczy rzeczywistych, które platforma musi śledzić i analizować. Dla większości platform wojskowego wywiadu sześć typów encji obejmuje zdecydowaną większość obiektów wywiadowczych:
- Osoba — indywidualne podmioty ludzkie: kombatanci, dowódcy, pośrednicy, osoby cywilne będące przedmiotem zainteresowania
- Organizacja — grupy, jednostki, sieci, struktury dowodzenia
- Lokalizacja — stałe obiekty geograficzne: instalacje, infrastruktura, punkty orientacyjne, nazwane obszary zainteresowania
- Sprzęt — pojazdy, systemy uzbrojenia, sensory, urządzenia łączności
- Zdarzenie — dyskretne incydenty: starcia, eksplozje, spotkania, transmisje
- Dokument — przechwycone materiały, publikacje, raporty wywiadowcze jako obiekty analizy
Każdy typ encji posiada rdzeń pól niezależnych od dyscypliny INT — pola, które muszą być wypełnione niezależnie od tego, która dyscyplina wywiadowcza dostarczyła informacji:
EntityCore {
entity_id: UUID // globalnie unikalny, niezmienny
entity_type: Enum // Person | Organization | Location |
// Equipment | Event | Document
classification: ClassMarkings // patrz sekcja proweniencji
valid_time: TimeInterval // [start, end) kiedy fakt był prawdziwy
transaction_time:TimeInterval // [start, end) kiedy wiersz był aktualny
confidence: Float[0..1] // skumulowana wiarygodność ze źródeł
source_obs_ids: UUID[] // ID rekordów obserwacji źródłowych
schema_version: SemVer // dla kompatybilności ewolucji
created_at: Timestamp
updated_at: Timestamp
}
Poza rdzeniem każdy typ encji ma typizowane rozszerzenia atrybutów. Encja Osoba zawiera identyfikatory biometryczne, pseudonimy, narodowość i linki do powiązanych organizacji. Encja Sprzęt zawiera typ platformy, identyfikatory seryjne jeśli znane i link do powiązanej jednostki. Encja Zdarzenie zawiera klasę zdarzenia, odniesienia do zaangażowanych encji i zasięg przestrzenny. Te rozszerzenia są przechowywane jako typizowane ładunki dołączone do koperty rdzeniowej — nie jako kolumny tabeli rdzeniowej. Ten podział umożliwia schematowi absorbowanie nowych atrybutów dla jednego typu encji bez wpływu na pozostałe.
Ta sama zasada separacji dotyczy wkładów poszczególnych dyscyplin INT. Gdy przechwycenie SIGINT powiązuje się z encją Osoba (ponieważ IMSI zostało powiązane ze znana osobą), ten link jest przechowywany jako rekord obserwacji z ładunkiem typizowanym jako SIGINT wskazującym na UUID encji Osoba. Sama encja Osoba nie zawiera kolumn specyficznych dla SIGINT — takie sprzężenie sprawiłoby, że schemat byłby kruchy na każdą zmianę zbierania SIGINT.
Proweniencja i śledzenie źródeł
Proweniencja jest najważniejszym wymaganiem niefunkcjonalnym każdego modelu danych wywiadowczych. Każda informacja w scalonym obrazie musi być możliwa do prześledzenia do źródłowej obserwacji, systemu zbierania, który ją wyprodukował, i ludzkich ocen zastosowanych wobec jej wiarygodności. Bez tego łańcucha analitycy nie mogą ocenić jakości obrazu, z którym pracują, a platforma nie może wykonać wycofania zmian, gdy źródło okaże się zawodne.
Blok proweniencji dołączony do każdego rekordu obserwacji powinien zawierać co najmniej:
ProvenanceBlock {
int_type: Enum // HUMINT | SIGINT | IMINT | OSINT | MASINT
source_id: UUID // referencja do rejestru wewnętrznych źródeł
source_reliability: Char // A–F (skala admiralicji NATO)
info_credibility: Integer // 1–6 (skala admiralicji NATO)
collection_time: Timestamp
report_time: Timestamp // kiedy raport trafił do systemu
originator: String // jednostka lub system, który wytworzył raport
classification: ClassMarkings
handling_caveats: String[] // NOFORN, ORCON, REL TO itp.
dissemination_ctrl: String[]
}
Skala admiralicji NATO koduje dwie niezależne oceny ludzkie dla każdej informacji wywiadowczej. Wiarygodność źródła (od A do F) ocenia historyczny track record i godność zaufania źródła — źródło ocenione jako A było konsekwentnie dokładne i rzetelne; źródło ocenione jako F ma nieznany lub słaby track record. Wiarygodność informacji (od 1 do 6) ocenia wiarygodność konkretnej informacji niezależnie od historii źródła — element oceniony jako 1 jest potwierdzony przez inne niezależne źródła; element oceniony jako 6 jest mało prawdopodobny w świetle tego, co już wiadomo.
Te dwie oceny są ludzką analizą przeprowadzoną przez wyszkolonych oficerów wywiadowczych. Są odrębne od obliczonego przez maszynę wyniku wiarygodności fuzji na encji i nie mogą być z nim mylone. Wiarygodność fuzji odzwierciedla statystyczną zgodność między potwierdzającymi źródłami; oceny skali admiralicji odzwierciedlają ludzki osąd o jakości źródła. Obie muszą być zachowane i prezentowane analitykom oddzielnie.
Oznaczenia klasyfikacji wymagają reprezentacji strukturalnej, a nie dowolnego tekstu. Typ ClassMarkings musi kodować: poziom klasyfikacji (od UNCLASSIFIED do TOP SECRET), kody i słowa kodowe oraz zastrzeżenia dotyczące obsługi jako wyliczoną listę. Ta struktura umożliwia programowe egzekwowanie kontroli dostępu — platforma może oceniać w czasie zapytania, czy poświadczenie bezpieczeństwa danego użytkownika spełnia wymagania klasyfikacyjne każdego pola, i może selektywnie redagować lub wstrzymywać pola przekraczające poziom poświadczenia użytkownika, zamiast odmawiać zwrócenia całej encji.
Rozwiązywanie encji między dyscyplinami INT
Rozwiązywanie encji — określanie, że rekordy z różnych źródeł odnoszą się do tej samej encji w świecie rzeczywistym — jest podstawowym problemem fuzji, najtrudniejszym właśnie na granicy między dyscyplinami INT. W obrębie jednej dyscypliny schematy identyfikatorów są spójne: dwa rekordy SIGINT współdzielące IMSI odnoszą się do tego samego urządzenia. Pomiędzy dyscyplinami nie istnieje domyślnie żaden wspólny identyfikator. Detekcja pojazdu przez IMINT, ustalenie namiarowe emitera SIGINT zlokalizowanego wspólnie z tym pojazdem i raport HUMINT wymieniający osobę widzianą w tym pojeździe muszą być powiązane przez wnioskowanie probabilistyczne, a nie przez wspólny klucz.
Potok rozwiązywania encji w zunifikowanym modelu musi obsługiwać trzy scenariusze łączenia:
Twarde linki — wspólne identyfikatory definitywnie łączące rekordy z tą samą encją. Znane IMSI, tablica rejestracyjna odczytana przez dwa przejścia IMINT, dopasowanie biometryczne. Twarde linki powinny być propagowane automatycznie bez zaniku wiarygodności.
Miękkie linki — probabilistyczne skojarzenia oparte na podobieństwie atrybutów w granicach niepewności. Dwie obserwacje raportujące pojazd tej samej klasy w nakładających się lokalizacjach w oknie czasowym zgodnym z ruchem między nimi. Miękkie linki niosą wynik wiarygodności dopasowania obliczony przez silnik rozwiązywania.
Wywnioskowane linki — skojarzenia wywiedzione z wiedzy dziedzinowej: jeśli namiar emitera SIGINT stale współporusza się ze śladem pojazdu IMINT, prawdopodobnie chodzi o tę samą platformę. Te linki wymagają jawnych definicji reguł i niosą niższą wiarygodność niż miękkie linki oparte na bezpośrednim nakładaniu się atrybutów.
Potok rozwiązywania produkuje hipotezy dopasowania. Hipotezy powyżej progu wysokiej wiarygodności są automatycznie scalane w rekord złoty. Hipotezy w środkowym przedziale są oznaczane do przeglądu przez analityka. Hipotezy poniżej niskiego progu są przechowywane jako oddzielne encje. Wartości progowe są konfigurowalne i powinny być dostrajalne dla każdego typu encji — scalanie encji Osoba wymaga wyższych progów wiarygodności niż scalanie Sprzętu, ponieważ fałszywe fuzje osób przynoszą gorsze konsekwencje analityczne niż fałszywe fuzje sprzętu.
Zarządzanie rekordami złotymi wymaga zdefiniowanej polityki scalania dla konfliktów atrybutów. Gdy dwa źródła nie zgadzają się co do atrybutu — jeden raport HUMINT mówi, że osoba była w lokalizacji A, detekcja IMINT umieszcza ją w lokalizacji B godzinę później — polityka scalania musi określać, jak pogodzić atrybut w rekordzie złotym. Typowe polityki to: wygrywa najnowszy czas ważności, wygrywa najbardziej wiarygodne źródło, ważona kombinacja dla atrybutów numerycznych. Wybrana polityka musi być przechowywana w rekordzie złotym jako metadane, aby analitycy mogli zrozumieć, dlaczego rekord złoty pokazuje określoną wartość atrybutu.
Model fuzji danych JDL ujmuje rozwiązywanie encji jako problem Poziomu 1 (doskonalenie obiektów) i Poziomu 2 (doskonalenie sytuacji). Projektowanie schematu opisane tutaj jest tym, co umożliwia praktyczne wdrożenie tych poziomów JDL.
Modelowanie temporalne: czas ważności a czas transakcji
Modelowanie bi-temporalne nie jest opcjonalne dla platformy wojskowego wywiadu. Jest to minimalna struktura temporalna potrzebna do obsługi dwóch najważniejszych typów zapytań: „co było prawdą w świecie w czasie T?" (zapytanie o czas ważności) i „co system wiedział o X w czasie T?" (zapytanie o czas transakcji). To są różne pytania wymagające różnych odpowiedzi, a schemat, który je myli — używając jednego znacznika czasu na rekord — nie może prawidłowo odpowiedzieć na żadne z nich.
Czas ważności reprezentuje, kiedy fakt był prawdziwy w świecie rzeczywistym. Dla detekcji pojazdu przez IMINT przy współrzędnych siatki czasem ważności jest znacznik czasu obrazowania. Dla raportu HUMINT opisującego spotkanie czasem ważności jest najlepsza ocena analityka, kiedy spotkanie miało miejsce — co może być zakresem dni, a nie precyzyjnym znacznikiem czasu. Czas ważności jest właściwością świata, a nie bazy danych.
Czas transakcji reprezentuje, kiedy rekord był aktualny w bazie danych. Dla tej samej detekcji IMINT czas transakcji zaczyna się, gdy rekord detekcji został wstawiony, i kończy, jeśli rekord jest kiedykolwiek zastąpiony (np. jeśli geolokalizacja zostanie ponownie przetworzona i poprawiona). Czas transakcji jest właściwością bazy danych, automatycznie zarządzaną przez system.
Połączenie umożliwia dwie krytyczne operacje. Po pierwsze, zapytania „jak było": „zrekonstruuj kompletny obraz wywiadowczy, jaki system posiadał o 14:00 w dniu D." Wymaga to zapytania po czasie transakcji — zwracania tylko rekordów, które były aktualne w bazie danych o 14:00 w dniu D, niezależnie od tego, kiedy przypada ich czas ważności. Jest to niezbędne do analizy po zdarzeniu i audytu decyzji opartych na wywiadzie. Po drugie, historyczne zapytania faktyczne: „jakie zdarzenia miały miejsce w lokalizacji X między dniem D-7 a dniem D?" Zapytuje to po czasie ważności — zwracając rekordy, których przedział czasu ważności pokrywa się z oknem zapytania, niezależnie od tego, kiedy zostały wstawione.
Implementacja w PostgreSQL używa kolumn periods. Wymiar czasu ważności jest reprezentowany jako kolumna tstzrange (zakres znacznika czasu ze strefą czasową). Wymiar czasu transakcji używa albo tabeli temporalnej z okresem systemowym (obsługiwanej natywnie w niektórych rozszerzeniach PostgreSQL), albo jawnej pary kolumn transaction_start i transaction_end, przy czym transaction_end jest ustawiane na nieskończoność dla bieżących wierszy i stemplowane przy aktualizacji, aby wskazać, kiedy wiersz został zastąpiony. Wszystkie aktualizacje muszą być realizowane jako operacje wstawiania nowego wiersza / stemplowania starego wiersza, nigdy jako nadpisania w miejscu.
Kontrola wersji i rodowód scalonych obiektów
Encje wywiadowcze nie są statyczne. Encja Osoba może zacząć jako tymczasowa identyfikacja z pojedynczego raportu HUMINT, uzyskać potwierdzenie przestrzenne z detekcji IMINT trzy dni później i otrzymać potwierdzenie biometryczne z odrębnego zdarzenia zbierania tydzień po tym. Każda z tych aktualizacji zmienia rekord złoty — ale poprzednie stany muszą być możliwe do odtworzenia, a nie nadpisane.
Standardową implementacją jest dziennik zdarzeń w trybie tylko do dołączania na encję. Każda zmiana stanu rekordu złotego generuje zdarzenie aktualizacji. Każde zdarzenie jest niezmienne po zapisaniu i zawiera:
- UUID encji
- Typ zdarzenia (Utworzone / Zaktualizowane / Scalone / Podzielone / Wycofane)
- Poprzednią migawkę stanu (pełna kopia rekordu złotego przed zmianą)
- Nową migawkę stanu
- ID rekordów obserwacji, które wywołały aktualizację
- Nazwę i wersję zastosowanej polityki fuzji
- Znacznik czasu transakcji
- ID operatora (analityk ludzki lub proces systemowy)
Aktualny rekord złoty jest wynikiem zastosowania wszystkich zdarzeń w kolejności od początku dziennika. Jest to wzorzec event-sourcingu zastosowany do danych wywiadowczych. Zapewnia kompletny dziennik audytu dla każdego stanu encji w każdym momencie czasu, co jest wymagane dla rozliczalności wywiadowczej w większości wojskowych ram prawnych.
Wycofanie zmian jest operacją pierwszej klasy: podając UUID encji i docelowy znacznik czasu transakcji, platforma re-materializuje rekord złoty w postaci, w jakiej istniał w tym momencie, odtwarzając dziennik zdarzeń do, lecz nie uwzględniając zdarzeń po docelowym czasie. Wycofanie jest wyzwalane, gdy źródło zostanie ocenione jako zwodnicze lub błędne — wszystkie rekordy złote, które zawierały obserwacje z tego źródła, muszą być ponownie ocenione z wykluczeniem skażonych obserwacji.
Zdarzenie wycofania jest mechanizmem obsługi tego scenariusza w skali. Gdy źródło S jest unieważniane, system generuje zdarzenie wycofania dla każdej obserwacji przypisanej do S, a następnie ponownie uruchamia fuzję dla każdej encji, która odwoływała się do którejkolwiek z tych obserwacji. Encje, których jedynym wsparciem były wycofane obserwacje, cofają się do stanu niższej wiarygodności lub są oznaczane jako niepotwierdzone. Encje, które miały potwierdzające źródła z innych dyscyplin INT, absorbują wycofanie z karą wiarygodności, ale pozostają w obrazie sytuacyjnym.
Model rodowodu umożliwia również zdarzenia podziału — odwrotność rozwiązywania encji. Jeśli dwie encje zostały niepoprawnie scalone (fałszywie pozytywna fuzja), zdarzenie podziału je rozdziela: błędny rekord złoty jest wycofywany, a dwa nowe rekordy encji są tworzone, każdy dziedzicząc obserwacje źródłowe, które do niego należą. Zdarzenie podziału zachowuje pełną historię stanu scalonego i decyzji o podziale, umożliwiając późniejszym analitykom zrozumienie, dlaczego podział nastąpił.
Ewolucja schematu w środowisku produkcyjnym
Platforma wojskowego wywiadu nie jest produktem statycznym. Nowe systemy zbierania danych są uruchamiane, nowe dyscypliny INT są dodawane do zakresu, a istniejące schematy wymagają dodawania atrybutów w miarę pojawiania się nowych wymagań analitycznych. Ewolucja schematu w platformie produkcyjnej, która nie może tolerować przestojów, wymaga przemyślanych decyzji projektowych od samego początku.
Podstawową zasadą jest wsteczna kompatybilność jako kontrakt. Koperta rdzeniowej encji — pola EntityCore — musi być rygorystycznie wersjonowana za pomocą pola schema_version. Każda zmiana koperty rdzeniowej, która usuwa pole lub zmienia typ pola, jest zmianą przełamującą i wymaga podbicia wersji głównej ze zdefiniowaną ścieżką migracji. Dodawanie opcjonalnych pól do rdzenia to zmiana wersji mniejszej. Pole wersji pozwala konsumentom deklarować, które wersje schematu obsługują, i umożliwia platformie serwowanie różnych wersji różnym konsumentom w okresie migracji.
Ładunki rozszerzeń są właściwym nośnikiem dla dodawania nowych typów INT lub nowych atrybutów. Gdy nowy system analizy obrazów zaczyna działać i produkuje dodatkowe typy atrybutów (na przykład wyniki oceny szkód strukturalnych wywiedzione z obrazów SAR), te atrybuty trafiają do nowej lub zaktualizowanej wersji ładunku rozszerzenia IMINT — nie do podstawowego schematu encji. Istniejący konsumenci, którzy nie potrzebują atrybutów specyficznych dla SAR, pozostają nienaruszone.
Taksonomia proweniencji musi być rozszerzana, gdy dodawany jest nowy typ INT. Wyliczenie typów INT zyskuje nową wartość, a definicje ocen wiarygodności źródeł i wiarygodności informacji muszą być przeglądane pod kątem zastosowania do nowego typu źródła. Niektóre nowe typy źródeł mogą wymagać nowych kryteriów wiarygodności, które nie mapują się czysto na istniejącą sześciopunktową skalę admiralicji — w takich przypadkach blok proweniencji powinien zawierać surowe metadane wiarygodności specyficzne dla źródła oprócz przetłumaczonej oceny admiralicji, zachowując wierność.
Reguły rozwiązywania encji są najbardziej pracochłonną ścieżką ewolucji. Gdy nowy typ INT dołącza do zunifikowanego modelu, inżynierowie rozwiązywania muszą określić, jak obserwacje z nowego źródła mogą być powiązane z istniejącymi typami encji. Wymaga to zarówno analizy danych (jakie atrybuty są dostępne do dopasowania?), jak i wiedzy dziedzinowej (jakie progi zbliżenia atrybutów są operacyjnie znaczące?). Reguły te muszą być poddane wzajemnemu przeglądowi przez doświadczonych analityków wywiadowczych, a nie tylko inżynierów oprogramowania — niepoprawne reguły rozwiązywania produkują fałszywe fuzje, które cicho uszkadzają obraz wywiadowczy.
Migracja schematu w modelu bi-temporalnym ma dodatkową kwestię do rozważenia: historyczne wiersze muszą być migrowane bez zmiany ich historii czasu transakcji. Migracja, która przepisuje istniejące wiersze i aktualizuje ich znaczniki czasu transakcji, niszczy semantykę zapytań historycznych. Migracje muszą być addytywne: dodawaj nowe kolumny z wartościami domyślnymi dla historycznych wierszy, nigdy nie aktualizuj istniejących wartości kolumn w historycznych rekordach.
Testowanie ewolucji schematu wymaga wielowarstwowej strategii: testy jednostkowe dla serializacji i deserializacji każdej wersji schematu; testy integracyjne kompatybilności konsumentów różnych wersji; i testy regresji z historycznymi próbkami danych wywiadowczych w celu potwierdzenia, że istniejące zapytania nadal zwracają identyczne wyniki po migracji. Testy danych historycznych są najczęściej pomijanymi i tymi, które wychwytują największą liczbę regresji przerywających działanie w środowisku produkcyjnym.
Model danych opisany w tym artykule stanowi cel projektowy, a nie punkt wyjścia dla implementacji w jednym sprincie. Większość platform buduje tę architekturę stopniowo — zaczynając od prostszego schematu dla dwóch lub trzech typów INT i dodając model bi-temporalny, pełne bloki proweniencji i rodowód oparty na event-sourcingu w miarę krystalizowania się wymagań operacyjnych. Co ma znaczenie, to to, że podstawowe decyzje projektowe — typizowane ładunki rozszerzeń, koperty encji niezależne od dyscypliny INT, oddzielone czasy ważności i transakcji — są podejmowane wcześnie, ponieważ ich retrofitowanie do monolitycznego schematu jest znacznie droższe niż wbudowanie ich od samego początku.