feat: mail service
This commit is contained in:
+4
-2
@@ -299,9 +299,11 @@ Tasks:
|
||||
|
||||
- Define the event payload for `country_review_recommended=true`.
|
||||
- Implement event publication on transition to `true`.
|
||||
- Implement configuration-driven email notification through `Mail Service`.
|
||||
- Implement configuration-driven notification handoff through
|
||||
`Notification Service`.
|
||||
- Add notification deduplication or transition-only logic to prevent spam.
|
||||
- Add failure metrics for both event publication and mail send.
|
||||
- Add failure metrics for both event publication and downstream notification
|
||||
handoff.
|
||||
|
||||
Important constraints:
|
||||
|
||||
|
||||
+14
-8
@@ -32,7 +32,7 @@ The service is embedded into an already existing trusted microservice environmen
|
||||
- `Edge Service`
|
||||
- `Auth / Session Service`
|
||||
- `User Service`
|
||||
- `Mail Service`
|
||||
- `Notification Service`
|
||||
- Internal event bus
|
||||
|
||||
`Edge Service` is the producer of authenticated connection observations.
|
||||
@@ -41,7 +41,9 @@ The service is embedded into an already existing trusted microservice environmen
|
||||
|
||||
`Auth / Session Service` remains the owner of session lifecycle and session blocking.
|
||||
|
||||
`Mail Service` is used only for optional administrative notifications.
|
||||
`Notification Service` is used for optional administrative notifications,
|
||||
which may later result in e-mail delivery through `Mail Service`.
|
||||
Geo Profile Service does not call `Mail Service` directly.
|
||||
|
||||
The event bus is used only as an auxiliary notification channel and not as the authoritative source of business state.
|
||||
|
||||
@@ -146,7 +148,8 @@ flowchart LR
|
||||
Edge -. async flatbuffers ingest .-> Geo[Geo Profile Service]
|
||||
|
||||
Geo --> User[User Service]
|
||||
Geo --> Mail[Mail Service]
|
||||
Geo --> Notify[Notification Service]
|
||||
Notify --> Mail[Mail Service]
|
||||
Geo --> Bus[Event Bus]
|
||||
Geo --> Auth
|
||||
|
||||
@@ -467,7 +470,7 @@ Meaning:
|
||||
|
||||
Producer:
|
||||
|
||||
- Geo Profile Service via `Mail Service`
|
||||
- Geo Profile Service via `Notification Service`
|
||||
|
||||
Consumers:
|
||||
|
||||
@@ -794,16 +797,19 @@ Contract assumptions:
|
||||
|
||||
This keeps the hot path simple and avoids synchronous enforcement coupling.
|
||||
|
||||
## Integration with Mail Service
|
||||
## Integration with Notification Service
|
||||
|
||||
Mail notifications are optional and configuration-driven.
|
||||
Administrative notifications are optional and configuration-driven.
|
||||
|
||||
Mail is sent only when:
|
||||
Notification routing is triggered only when:
|
||||
|
||||
- `country_review_recommended` transitions to `true`
|
||||
- Email notifications are enabled
|
||||
|
||||
Mail is auxiliary and must not be required for business correctness.
|
||||
`Notification Service` may then fan out e-mail delivery through
|
||||
`Mail Service`.
|
||||
Geo Profile Service itself never sends mail directly.
|
||||
That path is auxiliary and must not be required for business correctness.
|
||||
|
||||
## Event Bus Integration
|
||||
|
||||
|
||||
Reference in New Issue
Block a user