to teach myself a little bit of golang, web app and database, I'm working occasionally on this idea.
the idea is simple: tasks move in predefined pipelines. like ci but for tasks (i need to check existing solutions). imagine jira worflows that can move things automatically based on conditions and so on. i teally fashinated by the idea to use petri networks to have some foundation behind workflows - it provide semantics that i need.
i don't know if there is a need for that somewhere else, but i see a benefit for myself: i use todo tasks and i have process build around some task workflows.
imagine following process for reading book:
- bookmark some book
- start reading it
- finish book
- write review of the book
- post raiting to goodreads.
- move book to archive
- post a blog post
- etc.
wouldn't it be cool if i dont need to take care about details and just proceed with a book, and the system will take care of reminding or guiding me along those steps. user will just start by clicking: new want2read book, and then he will be able to see all possible options to proceed.
it's one way of formulating this. another way is to split process in multiple work desks where some part of the process is done, and then work is passed to the next desk. like when you want to get a book from library it can be split into:
- you ask for the book at the counter
- somebody go to the basement to get the book
- next book is registered in your library card
- you get your book
so work is done across three desks: counter, basement, office.
i try to push myself to use my own software, so i started with creating simple todo list, which i use daily, and currently I'm in the process of adding petri net based workflow manipulation behind it.