-
Notifications
You must be signed in to change notification settings - Fork 113
Open
Labels
T1hTime Estimate 1 HourTime Estimate 1 HourdiscussShare your constructive thoughts on how to make progress with this issueShare your constructive thoughts on how to make progress with this issueelixirPull requests that update Elixir codePull requests that update Elixir codeenhancementNew feature or enhancement of existing functionalityNew feature or enhancement of existing functionalitytechnicalA technical issue that requires understanding of the code, infrastructure or dependenciesA technical issue that requires understanding of the code, infrastructure or dependencies
Description
Need to make time to explore this package: https://github.com/erlware/erlcron

Looks to include most of the use-cases we would need to run a "reminders" type app.
However, it is still subject to process/server failure ...
i.e. if the process dies your reminder dies with it. 💀
So ... maybe we need a hybrid approach:
- Define the
event
/reminder
in aDSL
that can easily be understood by a human and converted toSQL
. - Save the
event
/reminder
to a distributedPostgres
(or other reliable DB) - Load the
event
/reminder
records into a process-basedcron
when the server starts. - All
new
event
/reminder
records are first inserted intoPostgres
for persistence/availability
and then loaded into anErlang
process
.
The open questions are:
A. How do we know that a reminder is only loaded on one server/instance to avoid duplication?
B. Does erlcron
understand time-zones? (it appears to, how can we test it to avoid bugs?)
C. What happens to an event
/ reminder
that is meant to trigger when the server/instance is offline?
Metadata
Metadata
Assignees
Labels
T1hTime Estimate 1 HourTime Estimate 1 HourdiscussShare your constructive thoughts on how to make progress with this issueShare your constructive thoughts on how to make progress with this issueelixirPull requests that update Elixir codePull requests that update Elixir codeenhancementNew feature or enhancement of existing functionalityNew feature or enhancement of existing functionalitytechnicalA technical issue that requires understanding of the code, infrastructure or dependenciesA technical issue that requires understanding of the code, infrastructure or dependencies