Each service might want to locally cache users and organizations so to easily retrieve the information when needed.
Today you need to implement this manually for each service.
Background
Identity Manager publishes events when a tenant, user, or organization, has been created, updated, or deleted.
It is up to each service to consume to those events, and to create their own locally cached representation of users and so.
Adding that functionality for a service is quite tedious today. You need to create Entities for at least Users, Organizations, OrganizationUsers, and perhaps for keeping track of permissions/claims.
You might also need to define new repositories, and commands. Copying is not even a great idea when logic is diverging. You get the point.
Objective
We should investigate how to share as much code as possible without sacrificing the flexibility for each service.
Each service might want to locally cache users and organizations so to easily retrieve the information when needed.
Today you need to implement this manually for each service.
Background
Identity Manager publishes events when a tenant, user, or organization, has been created, updated, or deleted.
It is up to each service to consume to those events, and to create their own locally cached representation of users and so.
Adding that functionality for a service is quite tedious today. You need to create Entities for at least Users, Organizations, OrganizationUsers, and perhaps for keeping track of permissions/claims.
You might also need to define new repositories, and commands. Copying is not even a great idea when logic is diverging. You get the point.
Objective
We should investigate how to share as much code as possible without sacrificing the flexibility for each service.
Similar to the Domain.* projects in Common.