Identity Service

Service managing customer identities across the platform including global identities, unverified identities, customer profiles, and data subject records.

Service Supporting Service

Overview

The Identity Service is a supporting domain service within the Capstone PAS responsible for managing customer identity information across the platform. It provides a unified identity layer that supports multi-tenant configurations, certificate-based trust management, and regulatory compliance.

Architecture

  • Event Sourcing: Identity state changes are persisted as events
  • CQRS: Separate read and write models for optimized queries
  • Multi-Tenant: Supports tenant-scoped identity records
  • Certificate-Based Trust: Attribute updates require certificates with sufficient trust levels

Capabilities

Global Identity Management

  • Create canonical customer identities with Global Customer ID (GCID)
  • Update identity attributes (name, email, mobile, address, DOB, gender)
  • Enforce certificate trust levels for updates
  • Look up identities by issued identity (ID number, passport)

Unverified Identity Handling

  • Create unverified identities during onboarding
  • Update unverified identity details
  • Support tenant-specific identity storage

Customer Profile Management

  • Create and update notification preferences (SMS, email)
  • Manage collection account preferences
  • Support multiple collection accounts per customer

Data Subject Tracking

  • Create data subject records for compliance
  • Track consent and data processing activities

SDK

The Identity Service provides a Java SDK for direct DynamoDB access:

IdentitySdk sdk = IdentitySdk.builder()
.dynamoDbClient(DynamoDbClient.create())
.config(IdentitySdkConfig.builder()
.tenantedIdentityTable("UNVERIFIED_IDENTITY_TABLE")
.globalIdentityTable("GLOBAL_IDENTITY_TABLE")
.customerProfileTable("CUSTOMER_PROFILE_TABLE")
.globalIdentityGuardTable("GLOBAL_IDENTITY_GUARD_TABLE")
.build())
.build();
sdk.globalIdentities().getByIssuedIdentity("ID", "1234567890", "ZA");

Event Flow

Command -> Aggregate -> Domain Event -> Event Store -> Projection
-> Kinesis -> Downstream Services