You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-13Lines changed: 21 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@
4
4
5
5
Complete working example of using Domain Driven Design (DDD), Hexagonal Architecture, CQRS, Event Sourcing (ES), Event Driven Architecture (EDA), Behaviour Driven Development (BDD) using TypeScript and NestJS.
6
6
7
-
Current release: **1.0.0**. See the [changelog](./CHANGELOG.md), the
8
-
[backend architecture](./docs/backend-architecture.md), and the proposed
9
-
[Keycloak IAM roadmap](./docs/keycloak-iam-roadmap.md).
7
+
Current release: **1.0.1**. See the [changelog](./CHANGELOG.md), the
8
+
[backend architecture](./docs/backend-architecture.md), and the
9
+
[Keycloak IAM architecture](./docs/keycloak-iam-roadmap.md).
@@ -192,12 +197,12 @@ The problem in this case is that the email information belongs to the IAM bounde
192
197
193
198
In this project the decision was to keep a local repository in the Marketing bounded context, of the users and their emails, updated by listening to integration events from the IAM bounded contexts (**user registered** and **user email changed**).
194
199
195
-
Authentication is currently implemented inside the application for continuity
196
-
with the original example. It is now treated as a transitional adapter rather
197
-
than the intended long-term identity system. The next IAM tranche will move
198
-
credential and session ownership to Keycloak while retaining the IAM bounded
199
-
context and translating OIDC claims through an anti-corruption layer. See the
200
-
[Keycloak IAM roadmap](./docs/keycloak-iam-roadmap.md).
200
+
Keycloak owns credentials and browser sessions, while the IAM bounded context
201
+
owns the application's user identity. An anti-corruption layer validates OIDC
202
+
claims and maps Keycloak's issuer/subject pair to an internal UUID. IAM
203
+
registration and email changes reach Marketing through an application-owned
204
+
transactional outbox, so downstream contexts do not depend on Keycloak. See
205
+
the [Keycloak IAM architecture](./docs/keycloak-iam-roadmap.md).
201
206
202
207
# V. Running in development mode
203
208
@@ -243,7 +248,8 @@ cd ddd-hexagonal-cqrs-es-eda
243
248
The frontend is then available at `http://localhost:4173` and the backend at `http://localhost:8080`.
244
249
- For local backend development, start only its infrastructure dependencies:
245
250
```bash
246
-
docker compose -p bitloops-todo-app up -d bl-nats bl-postgres
0 commit comments