roam/aweber/20210914142000-subscriber_search_service.org
2021-09-28 13:23:48 -04:00

4 KiB

Subscriber Search Service

A replacement for the current Sites Subscriber Search and Broadcast Segment Search implementations.

Architecture Notes

Added: [2019-08-06 Tue 10:34]

  • Broadcast sending manipulated queries before performing them to suit its needs

    • Handle list exclusion in the search service? (CCPANEL-9557)
    • Blocked emails
    • De-duplication
  • Lead view ids -> segment ids -> search service segments? (CCPANEL-9556)
  • Side-by-side comparison

    • Use broadcast-segment to compare its results to the search api results
  • Recipient-style representation or leads?
  • Define API (CCPANEL-9554)

    • Include saved searches (segments)
  • Iterate release (CCPANEL-9555)

    • Current UI
    • New UI with same capabilities of old UI

      • Still writing old-style segments
  • Research getting off the leads table (aurora?)

  • Deal with subscriber_tags table bloat in AppDB

Component Diagram

  database Analytics {
    database Ana as Ana01
    database Ana as Ana02
    database Ana as Ana03
  }
  database App
  database "Results Cache" as ResultsCache

  component "Search Service" as Service {

    component Search
    component Results

    Search -- Analytics
    Search -- App
    Search --> ResultsCache

    Results <-- ResultsCache

  }

/correlr/roam/media/commit/1f0cb86bf7d5e0f9cf9681f24289aa12477f166e/aweber/search-components.svg

Concerns

Performance

Fitness to Purpose

This service will need to fulfill the needs of both end-user subscriber searches and segment emailing.

Plan

Search Centralization

Expose search inputs backed with the existing database

  • Include IDs required to build existing POST format

Enable dblink on the search master database

Create new unlogged search results table

Define the search result format

https://xd.adobe.com/view/ae8fb2b2-c039-4e88-8ade-ff2562a8c8cf-fbdc/screen/c03f09c7-187e-4a6f-8b8c-571d131daee1/ (ignore engagement column)

  • name
  • email
  • source
  • status
  • date added
  • last updated

Perform search using new search DSL

Perform search using legacy segment ID

  • Include flags for broadcast segment-required filtering?

Manage segments using the existing database

  • Translate a DSL search into a legacy stored segment

Migrate to an updated schema

Migrate to new search service

Create new subscriber management React application

Update broadcast-segment to use new search service

Milestone 3: Add new search features