Skip to content

Commit f213f25

Browse files
authored
Document modernization phases and AI integration
Added detailed phases of modernization, including module separation, API enhancements, and AI integration.
1 parent d0c6578 commit f213f25

1 file changed

Lines changed: 250 additions & 2 deletions

File tree

src/content/pl-case-studies/commerce-platform-modernization-log.mdx

Lines changed: 250 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ Wdrożone elementy:
8585
- use case’y integracji wiadomości
8686

8787
Dodatkowo:
88+
8889
- obsługa podłączania i odłączania kont
8990
- obsługa callbacków
9091
- webhook / endpoint account deletion
@@ -188,6 +189,7 @@ Moduł `notifications` zapewnia:
188189
- usuwanie
189190

190191
Zawiera:
192+
191193
- własny UI
192194
- endpointy REST API
193195

@@ -304,6 +306,7 @@ Nowe UI zostało wdrożone dla:
304306
- modułu `notifications`
305307

306308
Dodatkowo:
309+
307310
- uproszczono wybrane legacy widoki
308311
- częściowo uporządkowano strukturę frontendową
309312

@@ -345,14 +348,259 @@ Ten log będzie rozszerzany o kolejne fazy.
345348

346349
---
347350

351+
## Faza: 2026-03 / 2026-05
352+
353+
### 1. Przejście od modułów do granic kontraktowych
354+
355+
Po pierwszej fazie porządkowania wybranych modułów modernizacja przesunęła się w stronę szerszej architektury kontraktowej.
356+
357+
Coraz więcej obszarów systemu nie jest już tylko wydzielonym folderem lub modułem wewnątrz monolitu. Wybrane domeny otrzymały własne API, read modele, porty, adaptery, procesy tła oraz warstwy pośrednie dla nowych konsumentów.
358+
359+
W praktyce oznacza to, że nowe elementy systemu mogą korzystać z jawnych kontraktów zamiast bezpośrednio odwoływać się do starszych modeli, kontrolerów lub tabel legacy.
360+
361+
Efekt:
362+
363+
- większa separacja odpowiedzialności
364+
- większa gotowość wybranych modułów do wydzielenia
365+
- możliwość podłączania nowych konsumentów, takich jak Core API, MCP i AI, bez obchodzenia granic domenowych
366+
- mocniejszy fundament pod przyszłą ekstrakcję do mikroserwisów
367+
368+
---
369+
370+
### 2. Moduł activities i append-only audit log
371+
372+
Obszar `activities` został wydzielony jako osobny moduł odczytowy z API `activities/v1`.
373+
374+
Wdrożone elementy:
375+
376+
- lista aktywności
377+
- szczegóły aktywności
378+
- endpoint filtrów
379+
- model odczytu
380+
- mapowanie starych payloadów legacy do jawnych DTO
381+
- ograniczanie dostępu na podstawie kontekstu sprzedawcy
382+
- przeniesienie odczytu historii operacji za granicę modułu
383+
384+
Następnie storage aktywności został przebudowany w kierunku append-only.
385+
386+
Zamiast traktować historię operacji jak zwykłe, modyfikowalne rekordy, system zaczął używać modelu opartego o zapis zdarzeń i projekcję aktualnego stanu (`activities_current`).
387+
388+
Efekt:
389+
390+
- activity log stał się bezpieczniejszym audit trailem
391+
- aktualizacje i usuwanie aktywności zostały zablokowane
392+
- stare dane są normalizowane za warstwą modułu
393+
- obszar jest przygotowany do dalszego użycia przez API, AI i przyszłe usługi
394+
395+
---
396+
397+
### 3. Moduł orders i synchronizacja zamówień zewnętrznych
398+
399+
Powstał nowy boundary `orders`, który porządkuje synchronizację i odczyt zamówień zewnętrznych.
400+
401+
Wdrożone elementy:
402+
403+
- append-only fundament synchronizacji zamówień
404+
- port providerów zewnętrznych
405+
- śledzenie przebiegów synchronizacji
406+
- zapis raw payloadów z systemów zewnętrznych
407+
- snapshoty zamówień i pozycji zamówień
408+
- external references
409+
- current-state read modele
410+
- internal API `orders/v1`
411+
- read-only boundary w `comers-core-api`
412+
- narzędzia MCP dla zamówień
413+
- osobny job synchronizacji zamówień zewnętrznych w runtime legacy
414+
415+
Szczególnie istotna była rozbudowa integracji eBay w stronę Sell Fulfillment API oraz obsługa danych związanych z terminami wysyłki.
416+
417+
Efekt:
418+
419+
- zamówienia zewnętrzne mają bardziej trwały i audytowalny model danych
420+
- synchronizacja nie opiera się wyłącznie na jednorazowym pobraniu najnowszych rekordów
421+
- dane o wysyłce i pilności mogą być używane przez API oraz AI
422+
- moduł `orders` stał się jednym z najważniejszych kandydatów do dalszego wydzielenia
423+
424+
---
425+
426+
### 4. Rozwój modułu messages: tłumaczenia i odpowiedzi wspierane AI
427+
428+
Moduł `messages` został rozszerzony z obszaru synchronizacji i obsługi wątków w kierunku wielojęzycznego, wspieranego przez AI centrum komunikacji.
429+
430+
Wdrożone elementy:
431+
432+
- tłumaczenie pojedynczych wątków
433+
- tłumaczenie list wątków
434+
- tłumaczenie tytułów i treści wiadomości
435+
- zapamiętywanie preferowanego języka tłumaczeń użytkownika
436+
- worker tłumaczeń działający w tle
437+
- integracja z `comers-ai-gateway`
438+
- endpoint kontekstu kompozytora odpowiedzi
439+
- sugerowanie draftu odpowiedzi na podstawie wątku
440+
- poprawianie i komponowanie odpowiedzi na podstawie draftu użytkownika
441+
- tłumaczenie odpowiedzi na docelowy język klienta
442+
- zachowanie osobnego, jawnego flow wysyłania odpowiedzi
443+
444+
AI nie zostało podłączone bezpośrednio do widoku lub bazy danych. Tłumaczenia i generowanie odpowiedzi przechodzą przez use case’y, adaptery oraz capability gateway.
445+
446+
Efekt:
447+
448+
- operatorzy mogą obsługiwać wiadomości klientów w wielu językach
449+
- AI pomaga przygotować odpowiedź, ale nie zastępuje jawnego procesu wysyłki
450+
- tłumaczenia mogą działać jako proces tła
451+
- komunikacja z klientami stała się jednym z pierwszych realnych obszarów AI-assisted operations w Comers
452+
453+
---
454+
455+
### 5. Rozszerzenie notifications do Core API i MCP
456+
457+
Moduł `notifications` istniał już w poprzedniej fazie modernizacji.
458+
459+
W tej fazie został rozszerzony o integrację z warstwą Core API oraz narzędziami MCP.
460+
461+
Wdrożone elementy:
462+
463+
- fasada notyfikacji w `comers-core-api`
464+
- narzędzia MCP do listowania notyfikacji
465+
- odczyt szczegółów notyfikacji
466+
- oznaczanie notyfikacji jako przeczytane
467+
- archiwizacja notyfikacji
468+
- operacje zbiorcze
469+
- przekazywanie zaufanego kontekstu użytkownika (`X-Internal-User-Id`)
470+
471+
Efekt:
472+
473+
- notyfikacje mogą być obsługiwane przez asystenta AI bez bezpośredniego dostępu do legacy
474+
- operacje są wykonywane w kontekście konkretnego użytkownika
475+
- istniejący moduł został rozszerzony o nowe typy konsumentów
476+
477+
---
478+
479+
### 6. Warstwa AI: ChatKit, MCP, Core API i Gateway
480+
481+
W systemie powstała pierwsza realna warstwa operacyjnego wsparcia AI.
482+
483+
Wdrożone elementy:
484+
485+
- `comers-ai-webapp`
486+
- `comers-ai-bff`
487+
- `comers-ai-chatkit`
488+
- `comers-ai-mcp`
489+
- `comers-ai-gateway`
490+
- lokalny runtime ChatKit
491+
- historia wątków rozmów
492+
- streaming odpowiedzi
493+
- narzędzia MCP dla messages, notifications i orders
494+
- integracja MCP z `comers-core-api`
495+
- capability gateway dla operacji AI
496+
497+
Asystent AI potrafi dziś korzystać z wybranych danych i akcji systemu przez jawne narzędzia domenowe.
498+
499+
Może między innymi:
500+
501+
- czytać listy i szczegóły wiadomości
502+
- czytać notyfikacje
503+
- czytać informacje o zamówieniach
504+
- korzystać z danych activity logu
505+
- oznaczać wiadomości i notyfikacje jako przeczytane
506+
- archiwizować wiadomości i notyfikacje
507+
- wspierać przygotowywanie odpowiedzi do klientów
508+
509+
Kluczową decyzją architektoniczną jest to, że AI nie omija granic aplikacji.
510+
511+
Ścieżka wykonania opiera się na kontraktach:
512+
513+
AI / ChatKit
514+
→ MCP
515+
→ Core API
516+
→ wewnętrzne API i moduły legacy
517+
518+
Efekt:
519+
520+
- AI działa jako kontrolowany konsument systemu
521+
- narzędzia są ograniczone do jawnie udostępnionych capability
522+
- wrażliwe operacje są wykonywane w kontekście użytkownika
523+
- powstała podstawa do dalszego rozwijania agentic operations bez destabilizowania legacy
524+
525+
---
526+
527+
### 7. AI Gateway i capability contracts
528+
529+
`comers-ai-gateway` został wprowadzony jako wewnętrzna warstwa capability dla operacji AI.
530+
531+
Wdrożone capability:
532+
533+
- `translate.v1`
534+
- `compose_reply.v1`
535+
536+
Gateway odpowiada za:
537+
538+
- ukrycie szczegółów integracji z providerem AI
539+
- wymuszanie struktury odpowiedzi
540+
- obsługę OpenAI Responses API
541+
- trwałe operacje dla tłumaczeń
542+
- idempotentne tworzenie operacji
543+
- odczyt statusu operacji
544+
- background polling przez osobny kontener runtime
545+
546+
Efekt:
547+
548+
- aplikacja nie zależy bezpośrednio od surowego API providera AI
549+
- długotrwałe operacje tłumaczeń mogą być obsługiwane poza request-response UI
550+
- capability AI mają własne kontrakty i mogą ewoluować niezależnie
551+
- gateway stał się miejscem dla kolejnych kontrolowanych funkcji AI
552+
553+
---
554+
555+
### 8. Separacja runtime i repozytoriów infrastrukturalnych
556+
557+
Runtime został wyraźniej oddzielony od kodu aplikacji.
558+
559+
Powstały lub zostały uporządkowane repozytoria:
560+
561+
- `comers-infra-ai`
562+
- `comers-infra-legacy`
563+
564+
`comers-infra-ai` obejmuje runtime dla:
565+
566+
- AI webapp
567+
- BFF
568+
- MCP
569+
- AI gateway
570+
- gateway pollera
571+
- ChatKit runtime
572+
573+
`comers-infra-legacy` obejmuje runtime legacy jako zestaw kontenerów:
574+
575+
- aplikacja
576+
- web
577+
- joby cykliczne
578+
- synchronizacja zamówień zewnętrznych
579+
- synchronizacja wątków wiadomości
580+
- worker tłumaczeń wiadomości
581+
582+
Efekt:
583+
584+
- repozytoria aplikacyjne nie są już głównym miejscem definicji produkcyjnego runtime
585+
- procesy tła stały się jawnie opisanymi jednostkami uruchomieniowymi
586+
- łatwiej zarządzać deploymentem, konfiguracją i odpowiedzialnościami poszczególnych usług
587+
- architektura jest bardziej gotowa do dalszej konteneryzacji i wydzielania usług
588+
589+
---
590+
348591
## Kolejne fazy
349592

350593
Planowane obszary dalszej transformacji:
351594

352-
- ekstrakcja wybranych modułów do usług
353-
- dalsza separacja integracji
595+
- dalsza ekstrakcja wybranych modułów do osobnych usług
596+
- rozwijanie `comers-core-api` jako stabilnej warstwy kontraktowej
597+
- rozszerzanie MCP o kolejne narzędzia domenowe
598+
- dalsze wzmacnianie trusted user context dla operacji wykonywanych przez AI
599+
- rozwijanie `comers-ai-gateway` o kolejne capability
600+
- dalsza separacja integracji marketplace i shipping
354601
- zastąpienie części legacy modelu jobów architekturą event-driven
355602
- głębsza separacja frontendu (SPA / BFF)
603+
- stopniowe przenoszenie kolejnych obszarów do niezależnych runtime’ów
356604

357605
---
358606

0 commit comments

Comments
 (0)