This is an open source replacement of the old DRIS software from Strukton. This is a series of microservices that process publicly available transport arrival data and pushes it to displays in the field.

An early architecture overview:


2020, Strukton won a government tender for the province Utrecht in the Netherlands. The province needed an information publish system that combines a few data sources into a message based system, able to serve 15000 displays. A major requirements was to only use open source products.

Strukton did have a similar product but that one did not use open source products, was dated, and not as performant and scalable as needed.

So this is where I came into the picture as a back-end developer, experienced with .Net Core, message queue’s, databases, and know-how about performance tuning. I joined them on a hourly contract as a freelancer, from January 2020 to the end of April 2020.

My part

They specifically asked for a no-nonsense developer: just make it work. So that is what I did, and more.

I created a simple .Net Core IHost based template for the 7 microservices. To leverage full Task based running, service based, and to provided hooks for integration with the Linux (background) service systeem.

I updated or recreated several .Net Framework XML web based polling adapters and made reliable and performant .Net Core microservices out of them. With database and MQQT message queue integration.

The message queue design was done on forehand, I only helped with tuning the specs. I implemented 5 of the 7 microservices, and most of the 34 message queue topics.

I implemented 5 databases with 35 tables in total. Most of the design was done on forehand, but a lot needed tuning (by me) based on performance and practical issues.

I refined the microservice templates to include the IHealthCheck interface. I made a framework to easily carry out performant implementations of the different message queue topics in the microservices.

Related stuff

Random order, tooling used

  • C# .Net Core
  • MQQT Message queue
  • .Net Core linux service based microservices using .Net Core IHost
  • MySql (MariaDB) for storage and a memory based PostGreSql db
  • Only usage of open Source products
  • GIT source control
  • Jira project management