Packages
event_bus
0.7.0
1.7.0
1.6.2
1.6.1
1.6.0
retired
1.5.2
retired
1.5.1
retired
1.5.0
retired
1.4.4
retired
1.4.3
retired
1.4.2
retired
1.4.1
retired
1.4.0
retired
1.3.8
retired
1.3.7
retired
1.3.6
retired
1.3.5
retired
1.3.4
retired
1.3.3
retired
1.3.2
retired
1.3.1
retired
1.3.0
retired
1.2.0
retired
1.1.3
retired
1.1.2
retired
1.1.1
retired
1.1.0
retired
1.0.0
retired
1.0.0-beta4
retired
1.0.0-beta3
retired
1.0.0-beta2
retired
1.0.0-beta1
retired
0.9.0
retired
0.8.0
retired
0.7.0
retired
0.6.1
retired
0.6.0
retired
0.5.0
retired
0.4.1
retired
0.4.0
retired
0.3.1
retired
0.3.0
retired
0.2.1
retired
0.2.0
retired
0.1.0
retired
Traceable, extendable and minimalist event bus implementation for Elixir with built-in event store and event watcher based on ETS
Retired package: Deprecated
Current section
Files
Jump to
Current section
Files
lib/event_bus/models/event.ex
defmodule EventBus.Model.Event do
@moduledoc """
Structure and type for Event model
"""
@enforce_keys [:id, :topic, :data]
defstruct [
:id,
:transaction_id,
:topic,
:data,
:initialized_at,
:occurred_at,
:ttl
]
@typedoc """
Defines the Event struct.
* :id - Identifier
* :transaction_id - Transaction identifier, if event belongs to a transaction
* :topic - Topic name
* :data - Context
* :initialized_at - When the process initialized to generate this event
* :occurred_at - When it is occurred
* :ttl - Time to live value
"""
@type t :: %__MODULE__{
id: String.t | integer,
transaction_id: String.t | integer,
topic: atom,
data: any,
initialized_at: integer,
occurred_at: integer,
ttl: integer
}
@doc """
Duration of the event, and simple answer of how long does it take to generate
this event
"""
def duration(%__MODULE__{initialized_at: initialized_at,
occurred_at: occurred_at})
when is_integer(initialized_at) and is_integer(occurred_at) do
occurred_at - initialized_at
end
def duration(_),
do: 0
end