marinasundstrom / YourBrand

Prototype enterprise system for e-commerce and consulting services
77 stars 13 forks source link

Share logic for caching users per service #15

Open marinasundstrom opened 5 months ago

marinasundstrom commented 5 months ago

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.