Module: Vert::Outbox::Event

Extended by:
ActiveSupport::Concern
Defined in:
lib/vert/outbox/event.rb

Instance Method Summary collapse

Instance Method Details

#can_retry?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/vert/outbox/event.rb', line 55

def can_retry?
  status_failed? && retry_count < self.class.max_retry_count
end

#mark_as_failed!(error) ⇒ Object



51
52
53
# File 'lib/vert/outbox/event.rb', line 51

def mark_as_failed!(error)
  update!(status: :failed, retry_count: retry_count + 1, last_error: error.to_s, failed_at: Time.current)
end

#mark_as_published!Object



47
48
49
# File 'lib/vert/outbox/event.rb', line 47

def mark_as_published!
  update!(status: :published, published_at: Time.current)
end

#message_headersObject



63
64
65
# File 'lib/vert/outbox/event.rb', line 63

def message_headers
  { tenant_id: tenant_id, event_type: event_type, aggregate_type: aggregate_type, aggregate_id: aggregate_id, event_id: id, timestamp: created_at.iso8601 }
end

#routing_keyObject



59
60
61
# File 'lib/vert/outbox/event.rb', line 59

def routing_key
  event_type.tr("_", ".")
end