in core/src/main/scala/org/apache/pekko/persistence/jdbc/query/JournalSequenceActor.scala [29:56]
def props(readJournalDao: ReadJournalDao, config: JournalSequenceRetrievalConfig)(
implicit materializer: Materializer): Props = Props(new JournalSequenceActor(readJournalDao, config))
private case object QueryOrderingIds
private case class NewOrderingIds(originalOffset: Long, elements: Seq[OrderingId])
private case class ScheduleAssumeMaxOrderingId(max: OrderingId)
private case class AssumeMaxOrderingId(max: OrderingId)
case object GetMaxOrderingId
case class MaxOrderingId(maxOrdering: OrderingId)
private case object QueryOrderingIdsTimerKey
private case object AssumeMaxOrderingIdTimerKey
private type OrderingId = Long
}
/**
* To support the EventsByTag query, this actor keeps track of which rows are visible in the database.
* This is required to guarantee the EventByTag does not skip any rows in case rows with a higher (ordering) id are
* visible in the database before rows with a lower (ordering) id.
*/
class JournalSequenceActor(readJournalDao: ReadJournalDao, config: JournalSequenceRetrievalConfig)(
implicit materializer: Materializer)
extends Actor
with ActorLogging
with Timers {