5.4 KiB
5.4 KiB
Subscriber Search Service
- Architecture Notes
- Concerns
- Plan
- Resources
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?)
- https://confluence.aweber.io/display/AR/Search+Service+Using+Existing+Databases
- Distinct from a materialized search-optimized db
- 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
}
Concerns
Performance
Fitness to Purpose
This service will need to fulfill the needs of both end-user subscriber searches and segment emailing.
Plan
ITEM | Effort |
---|---|
Plan | 18d 0:00 |
Search Centralization | 18d 0:00 |
Expose search inputs backed with the existing database | 2d |
Enable dblink on the search master database | 2d |
Create new unlogged search results table | 2d |
Define the search result format | 1d |
Perform search using new search DSL | 5d |
Perform search using legacy segment ID | 3d |
Manage segments using the existing database | 3d |
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 |
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
- 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
Resources
- PostgreSQL Backed Search (Rejected ACP)
- Search Proxy Service
[[https://confluence.aweber.io/display/~robink/SoT-ElasticSearch+Next+Steps][SoT - ElasticSearch Next Steps]]- Alternative Search Proposal
-
Search Service Using Existing Databases (Approved ACP)
- Search Service - Proof of Concept Findings (Benchmarks different approaches)
- Search Prototype
- Search DSL JSON Schema