Release r28 - Webhooks
Implemented feature webhooks in release r28. Upcoming features include the “Today View,” “Task Inbox,” and “logbook.”
With the release of r28, we introduced webhooks. The development process took approximately two weeks in total: one week for designing the webhooks and another week for implementing them.
We are public about the changes we make to Todo2d. If you want to know what has changed you can read it in the changelog.
Why two weeks?
Short answer: Because webhooks are not "simple".
Webhooks are peculiar because they enable users to dictate how their application integrates with our system. Consequently, we spend a lot of time to gathering requirements related to security and performance.
Security was relatively straightforward. All messages are signed using HMACSHA256, which is the same algorithm used by GitHub. All we do is verify the status code. Additionally, we implemented a few extra systems to improve security such as being able to automatically block destinations and requiring HTTPS. (For more details see the documentation about customize webhooks)
The most significant challenge, however, lies in our approach to handling performance. Whenever an action is performed, such as updating a task, a message is sent to Todo2d, the data is stored in the database, a response is sent, and all other systems monitoring the process are also notified. But an important feature of Todo2d is that everything is real-time (or as real-time as we can get), so we want to avoid any additional latency.
And thus the design and implementation needed to be done careful.
Next
Next on our list of things we have three things we are actively working towards:
- The "Today View"
- The "Task Inbox"
- The "logbook" (diary, timers, timelines, checkins)
These are all features that we wanted since the start of Todo2d so that we can actually proof that Todo2d helps you.