Many applications Divverence creates for our customers, are very specific data processing apps. Our customers run systems that must be up and running 24/7, and so must our apps. This brings an interesting challenge – the budget for custom made software is often fairly restricted, but absolute reliability is required. Divverence solves this by building an in-house rapid application development toolbox called Vlow, that provides an application model based on Flow Based Programming combined with pre-built building blocks for common interfaces and support system. This toolbox is under constant development – not only adding building blocks but also improving performance and the programming model, development tools, logging and monitoring integration and other features making Vlow-built applications the best of breed.
Vlow applications run on either the .NET or .Net Core CLR, as either Windows Services or Docker containers. Vlow is written in C#, making use of functional features from C# 7.3, and the various NuGet packages it consists of are built from git repositories by a Jenkins pipeline running an F# build script.
Vlow applications are designed and built as a graph of interconnected workflow steps, usually implemented as Akka.NET actors passing immutable data records. The applications usually have a web interface written in ASP.NET Core with SignalR, offering a self-documenting functional view using mermaid graphs. Vlow offers out of the box logging and reporting integrations with for example ElasticSearch, Kafka and Email, and reliable I/O using HTTP, XML, JSON, SMB and Azure EventHub. We’ve heavily invested in real time continuous unit testing, not only the units of Vlow, but also entire application behavior and error handling, using xUnit, nCrunch and marble testing.
We’ve set up a very agile way of working – delivering customer value has priority, and we try to continuously improve by considering to solve issues inside Vlow rather versus hacking a cheap one-off solution. We continuously deliver and pro-actively integrate, Informal design and grooming sessions are used for looking forward and our restrospectives are used to improve our processes. Certain parts of Vlow are open-source, and we actively contribute to the open-source projects whose work we benefit from. We track our backlog and issues in Jira, our private git is hosted on bitbucket and our open-source projects on github. Our numerous packages are built by Jenkins and hosted on NuGet.org and MyGet. Developers get to choose their own OS and tools: VS2019 with or without R#, Rider or VS Code. We use git flow as our git way of working, and semver 2 automatic version numbering using our own open-sourced version calculator. We love early pull requests and pair programming for the best collaboration and reflection. We document our work using docfx and markdown. Our developers work on a mix of design, development, documentation and maintenance, for both customer projects as well as Vlow itself.
If this stuff makes you heart go a little faster – whether you’re already good at it or are eager to learn more – we should talk! We have projects like this all the time – customers, technology and the exact mode of collaboration may vary, but always striving to deliver great value to our customers by using the right tech and process for the job!
Feel free to Contact us when you’re interested.