ugrás a tartalomhoz

Archívum - Jan 6, 2020

Dátum
  • Minden
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

DDD terén tudnátok segíteni?

inf · 2020. Jan. 6. (H), 18.14
Sok dolog nem világos DDD-vel kapcsolatban, és nem találok rá választ, bárhogyan keresem. Általános dolgokra persze van válasz, hogy aggregate root-ot hogyan kell választani, meg hogy mi entity, mi value object, mekkora egy bounded context, ilyesmik. Nem tudom, hogy ennyire specifikus a problémám, vagy egyszerűen a DDD nem foglalkozik a kérdéssel, és oldjam e meg, ahogy tudom. Nyilván a problémát meg tudom oldani, de szeretnék fejlődni DDD-ben is. Az egész cucc egy nodejs daemonban futna egyelőre, később talán szétskáláznám földrészenként, ha szükséges.


Nagyjából arról van szó, hogy van egy előrejelző szolgáltatás (ForecastingService), amitől bizonyos időközönként elkérem a friss előrejelzéseket (Forecast). A felhasználók (User) feliratkoznak (Subscription) értesítésekre (Notification) ezekkel kapcsolatban. Az, hogy valaki kap e értesítést függ a tartózkodási helytől (Location), az arra a helyre vonatkozó előrejelzéstől (LocalForecast(Forecast, Location)), a felhasználó beállításaitól (NotificationSettings), és egy viszonylag bonyolult algoritmustól, ami ezek alapján dönt. Igy első körben azt mondanám, hogy értesítő szolgáltatást nyújtok (NotificationService), ami a fent említett algoritmust magába foglalja.

Ami mentésre kerül az a User, a Settings és a Subscription. A Forecast-et is menteni szeretném, de csak azért, hogy egy másik alkalmazással kielemezzem később, tehát ennél az alkalmazásnál nem olvasnám vissza, de jó lenne, ha bekerülne az event storage-be. A Notification-t is jó lenne menteni, mert jó lenne, ha nem menne el sorozatban egy tucatszor ugyanaz az értesítés.

1.
Itt azt hiszem egyértelmű, hogy szükség van legalább egy setInterval-ra, hogy tudjam folyamatosan frissíteni az előrejelzéseket. Ami nem világos DDD-vel kapcsolatban, hogy ennek a setInterval-nek hol a helye. Mármint valószínűnek tartom, hogy csinálnom kell egy NotificationService példányt az elején, ami elindítja az egészet, és felügyeli a frissítést.