Skip to content

Re-evaluate Identity Management #30

@zarathustra323

Description

@zarathustra323

Per #27 and #29, the identity model (and associated management) should be re-evaluated.

Currently, the customer-identity model requires a unique email address. This causes considerable issues when attempting to sync identity data from multiple sources: e.g. from Omeda, Mailchimp, internally from Radix, etc.

Going forward, an identity should be defined as:

  • A normalized model containing customer data, that is to say, customer data that has been rolled up from some source in a standardized way
  • A representation of customer data at the time is was submitted: either internally via a Radix submission or when pulled from a third-party
  • A model whose uniqueness is solely based on a source key and a source identifier, not by email address
  • A model that does not require an email address
  • A model that is not linked to a customer account, at least not directly. This is debatable
  • A model whose data is only updated if the submission also includes the same source key and identifier as the original

Some examples:

  • An omeda identity with an email address of foo@bar.com would not be updated by a mailchimp identity with the same email address
  • An omeda identity with an external id of ABC (whose email address is currently foo@bar.com) could now be reliably updated by an new, incoming identity id of ABC with an email address of blek@baz.com
  • Identity records could now exist without any email address information at all

Finally, storing identities in this way would allow us to immediately create the model and drop its associated cookies without requiring the overhead of syncing the data from the third-party source at the same done. This can now be done post-process. Also, identities could now support multiple email addresses instead of a single, unique entry.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions