3 KiB
3 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?)
- 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
Concerns
Performance
Fitness to Purpose
This service will need to fulfill the needs of both end-user subscriber searches and segment emailing.
Interim Solution
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
}
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