Building a Typed Workflow Engine: A Labor of Love
I’ve always been fascinated by the idea of creating a system that can automate tasks and workflows in a safe and predictable way. As a developer, I’ve spent countless hours working on various projects, and I’ve come to realize that one of the biggest challenges is creating a system that can handle complex workflows without becoming a maintenance nightmare. That’s why I’m excited to share with you my latest project, a typed workflow engine that I’ve been working on for over 5,000 hours.
What is a Typed Workflow Engine?
A typed workflow engine is a system that allows you to create and manage workflows using a visual interface. It’s similar to a blueprint or a flowchart, but with a few key differences. The main idea behind a typed workflow engine is to provide a safe and predictable way to create and manage workflows by using strict type checking to ensure that each node in the workflow is properly connected and configured.
Benefits of a Typed Workflow Engine
So, why is a typed workflow engine important? Well, for starters, it provides a number of benefits over traditional workflow systems. For one, it helps to prevent “mystery JSON” bugs, which can be notoriously difficult to track down and fix. By using strict type checking, a typed workflow engine can catch errors at wire time, rather than hours into a long run. This makes it easier to debug and maintain workflows, and it also makes it safer to refactor and share components.
Another benefit of a typed workflow engine is that it provides a clearer contract between nodes. This means that each node in the workflow knows exactly what to expect from the nodes that come before and after it, which makes it easier to create and manage complex workflows.
My Project: Flow-Like
My project, Flow-Like, is a typed workflow engine that I’ve been working on for over 5,000 hours. It’s a free, offline-first system that allows you to create and manage workflows using a visual interface. It’s built for local use, which means that you can process files, data, and AI tasks on your own machine without having to rely on cloud services.
Flow-Like is designed to be highly flexible and customizable, with a solid starting set of nodes that include GenAI agents, classical ML nodes, embedded local databases, generic HTTP/API calls, variable handling, IP camera frame grabs, and more. It’s also designed to be highly scalable, with a focus on performance and efficiency.
What Works Today
So, what works today? Well, for starters, the desktop app is fully functional and offline-first, which means that you can use it without an internet connection. The models are also local by default, which means that you can bring your own local models and use them without having to rely on cloud services.
Flow-Like is also designed to play nicely with data tooling, such as dataframes and object stores, and it includes a number of AI/RAG-style steps that make it easy to automate complex tasks. It’s also highly customizable, with a number of options for extending and modifying the system to meet your specific needs.
What’s Next
So, what’s next for Flow-Like? Well, I’m currently working on a headless/server version of the system, which will allow you to run workflows on a server or in a cloud environment. I’m also looking for feedback on missing nodes, usability, download/installation, and what you’d need from a future headless/server build.
If you’re interested in trying out Flow-Like, you can download it from the GitHub repository or visit the website for more information. I’m always looking for feedback and suggestions, so don’t hesitate to reach out if you have any ideas or questions.
Why Rust?
So, why did I choose to build Flow-Like in Rust? Well, for starters, I’m a big fan of the Rust language and ecosystem. I think it’s a great choice for building systems that require high performance and reliability, and it’s also highly scalable and maintainable.
Rust’s focus on safety and concurrency also makes it a great choice for building a typed workflow engine, where safety and predictability are key. And, with Cargo’s tooling and the Rust ecosystem, it’s easy to build and maintain a large and complex system like Flow-Like.
Pricing
So, how much does Flow-Like cost? Well, the good news is that it’s free to use. I’m committed to keeping the system open-source and free, and I’m always looking for ways to make it more accessible and usable for everyone.
Conclusion
In conclusion, I’m excited to share Flow-Like with the world, and I’m looking forward to hearing your feedback and suggestions. I think it has the potential to be a game-changer for anyone who needs to automate complex tasks and workflows, and I’m committed to making it the best it can be.
Thanks for reading, and I hope you’ll join me on this journey to create a safer, more predictable, and more efficient way to automate workflows.
Polska wersja
Zawsze byłem fascynowany pomysłem stworzenia systemu, który może zautomatyzować zadania i przepływy pracy w sposób bezpieczny i przewidywalny. Jako programista, spędziłem niezliczoną ilość godzin nad różnymi projektami i zrozumiałem, że jednym z największych wyzwań jest stworzenie systemu, który może obsłużyć złożone przepływy pracy bez stania się utrzymania koszmarem. Dlatego jestem podekscytowany, aby podzielić się z wami moim najnowszym projektem, silnikiem przepływu pracy z typami, nad którym pracowałem przez ponad 5 000 godzin.
Co to jest silnik przepływu pracy z typami?
Silnik przepływu pracy z typami to system, który pozwala tworzyć i zarządzać przepływami pracy za pomocą interfejsu wizualnego. Jest to podobne do planu lub wykresu przepływu, ale z kilkoma kluczowymi różnicami. Głównym celem silnika przepływu pracy z typami jest zapewnienie bezpiecznego i przewidywalnego sposobu tworzenia i zarządzania przepływami pracy, korzystając ze ścisłej kontroli typów, aby upewnić się, że każdy węzeł w przepływie pracy jest prawidłowo połączony i skonfigurowany.
Korzyści silnika przepływu pracy z typami
Dlaczego silnik przepływu pracy z typami jest ważny? Cóż, po pierwsze, zapewnia on szereg korzyści w porównaniu z tradycyjnymi systemami przepływu pracy. Po pierwsze, pomaga zapobiegać błędom “tajemniczego JSON”, które mogą być bardzo trudne do znalezienia i naprawienia. Dzięki korzystaniu ze ścisłej kontroli typów, silnik przepływu pracy z typami może wykryć błędy w czasie połączenia, a nie godziny po rozpoczęciu długiego uruchomienia. To sprawia, że łatwiej jest debugować i utrzymywać przepływy pracy, a także czyni je bezpieczniejszymi do refaktoryzacji i udostępniania komponentów.
Kolejną korzyścią silnika przepływu pracy z typami jest to, że zapewnia on wyraźniejszą umowę między węzłami. Oznacza to, że każdy węzeł w przepływie pracy wie dokładnie, czego może oczekiwać od węzłów, które występują przed i po nim, co ułatwia tworzenie i zarządzanie złożonymi przepływami pracy.
Mój projekt: Flow-Like
Mój projekt, Flow-Like, to silnik przepływu pracy z typami, nad którym pracowałem przez ponad 5 000 godzin. Jest to bezpłatny, offline-first system, który pozwala tworzyć i zarządzać przepływami pracy za pomocą interfejsu wizualnego. Został on zaprojektowany do użytku lokalnego, co oznacza, że możesz przetwarzać pliki, dane i zadania AI na swojej maszynie bez konieczności polegania na usługach chmurowych.
Flow-Like został zaprojektowany, aby być bardzo elastycznym i dostosowanym do Twoich potrzeb, z solidnym zestawem węzłów, które obejmują agenty GenAI, węzły ML klasyczne, bazy danych lokalne, ogólne wywołania API/HTTP, obsługę zmiennych, pobieranie klatek z kamery IP i wiele więcej. Jest on również zaprojektowany, aby być bardzo skalowalnym, z naciskiem na wydajność i efektywność.
Co działa dzisiaj
Cóż, co działa dzisiaj? Cóż, po pierwsze, aplikacja desktopowa jest w pełni funkcjonalna i offline-first, co oznacza, że możesz ją używać bez połączenia z internetem. Modele są również lokalne domyślnie, co oznacza, że możesz przynieść swoje własne lokalne modele i używać ich bez konieczności polegania na usługach chmurowych.
Flow-Like został zaprojektowany, aby współpracować z narzędziami do pracy z danymi, takimi jak ramki danych i magazyny obiektów, i zawiera wiele kroków AI/RAG, które ułatwiają automatyzację złożonych zadań. Jest on również bardzo dostosowywany, z licznymi opcjami rozszerzania i modyfikowania systemu w celu spełnienia Twoich konkretnych potrzeb.
Co dalej
Cóż, co dalej dla Flow-Like? Cóż, obecnie pracuję nad wersją serwerową/systemową, która pozwoli na uruchamianie przepływów pracy na serwerze lub w środowisku chmurowym. Szukam również opinii na temat brakujących węzłów, użyteczności, pobierania/zainstalowania i tego, czego potrzebujesz od przyszłej wersji serwerowej.
Jeśli jesteś zainteresowany wypróbowaniem Flow-Like, możesz pobrać go z repozytorium GitHub lub odwiedzić stronę internetową, aby uzyskać więcej informacji. Zawsze szukam opinii i sugestii, więc nie wahaj się skontaktować ze mną, jeśli masz jakieś pomysły lub pytania.
Dlaczego Rust?
Cóż, dlaczego wybrałem Rust do budowy Flow-Like? Cóż, po pierwsze, jestem wielkim fanem języka Rust i ekosystemu. Uważam, że jest to świetny wybór do budowy systemów, które wymagają wysokiej wydajności i niezawodności, a także jest bardzo skalowalny i utrzymywalny.
Nacisk Rusta na bezpieczeństwo i współbieżność sprawia, że jest to idealny wybór do budowy silnika przepływu pracy z typami, gdzie bezpieczeństwo i przewidywalność są kluczowe. A dzięki toolingowi Cargo i ekosystemowi Rust, jest łatwo budować i utrzymywać duży i złożony system jak Flow-Like.
Cena
Cóż, ile kosztuje Flow-Like? Cóż, dobra wiadomość jest taka, że jest to bezpłatne. Zobowiązałem się do utrzymania systemu w sposób open-source i bezpłatny, i zawsze szukam sposobów, aby uczynić go bardziej dostępnym i użytecznym dla wszystkich.
Podsumowanie
Podsumowując, jestem podekscytowany, aby podzielić się Flow-Like ze światem, i cieszę się, że usłyszę Twoją opinię i sugestie. Uważam, że ma on potencjał, aby być przełomowym dla każdego, kto musi zautomatyzować złożone zadania i przepływy pracy, i jestem zobowiązany do tego, aby uczynić go najlepszym, jak to możliwe.
Dziękuję za przeczytanie, i mam nadzieję, że dołączysz do mnie w tej podróży, aby stworzyć bezpieczniejszy, bardziej przewidywalny i wydajniejszy sposób zautomatyzowania przepływów pracy.