Fact.EventTagsIndexer (Fact v0.2.0)
View SourceIndexs events by each of their specified tags.
Summary
Functions
Returns a specification to start this module under a supervisor.
Extracts the tags defined on the event.
Gets the friendly name for the indexer.
Starts the indexer process.
Types
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
Extracts the tags defined on the event.
iex> event = %{
...> "event_type" => "ClutchLaid",
...> "event_data" => %{"turtle_id" => "t1", "clutch_id" => "c1", "eggs" => 42},
...> "event_tags" => ["turtle:t1", "clutch:c1"],
...> "stream_id" => "turtle_mating-1234",
...> "stream_position" => 3
...> }
iex> Fact.EventTagsIndexer.index_event(event, [])
["turtle:t1", "clutch:c1"]
iex> event = %{
...> "event_type" => "EggHatched",
...> "event_data" => %{"turtle_id" => "t2", "clutch_id" => "c1"},
...> "event_tags" => ["turtle:t2", "clutch:c1"],
...> "stream_position" => 1
...> }
iex> Fact.EventTagsIndexer.index_event(event, [])
["turtle:t2", "clutch:c1"]
iex> event = %{
...> "event_type" => "DatabaseCreated",
...> "event_data" => %{"database_id" => "RVX27QR6PFDORJZF24C4DIICSQ"},
...> "stream_id" => "__fact",
...> "stream_position" => "1"
...> }
iex> Fact.EventTagsIndexer.index_event(event, [])
nil
@spec indexer_name() :: String.t()
Gets the friendly name for the indexer.
This is included in the file path where index files are stored on disk.
@spec start_link([Fact.EventIndexer.option()]) :: GenServer.on_start()
Starts the indexer process.