Gist of the proposed keyword mute implementation: Keyword mutes are represented server-side as one keyword per record. For each account, there exists a keyword regex that is generated as one big alternation of all keywords. This regex is cached (in Redis, I guess) so we can quickly get it when filtering in FeedManager.
		
			
				
	
	
		
			12 lines
		
	
	
		
			291 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			12 lines
		
	
	
		
			291 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
class CreateKeywordMutes < ActiveRecord::Migration[5.1]
 | 
						|
  def change
 | 
						|
    create_table :keyword_mutes do |t|
 | 
						|
      t.references :account, null: false
 | 
						|
      t.string :keyword, null: false
 | 
						|
      t.timestamps
 | 
						|
    end
 | 
						|
 | 
						|
    add_foreign_key :keyword_mutes, :accounts, on_delete: :cascade
 | 
						|
  end
 | 
						|
end
 |