Skip to main content


How to guarantee the order in which the messages are processed inside AWS MQ and Azure Service Bus (FIFO on the consumer)

Recent posts

FIFO and queues inside AWS and Azure

Nowadays, most of the systems that are running inside a cloud provider like AWS or Microsoft Azure are using in one way or another a messaging system. Many people forget that not all the time a queue guarantee FIFO.
Things are becoming more sophisticated, at the moment in time when you integrate the queue with other systems. You might realise that even if your queue is supporting FIFO, the integration with other cloud services will not enable you to use queue with FIFO guarantee. Because of this, I decided to write this short blog post that highlights things that might go wrong when you need a FIFO inside AWS or Microsoft Azure and how you could tackle them.
AWS and FIFO At this moment in time (January 2020) the AWS services that manage messages are: AWS SQSAWS MQAWS SNS (simple event/message routing solution)
NOTE: We don’t take into consideration AWS Kinesis and AWS IoT Message Broker because they are more specific for events handling and IoT solutions. From the above list, AWS SQS h…

How to migrate an Azure Cosmos DB instance

In this post, we talk about how we can migrate an Azure Cosmos DB database from one tenant to another.
Why? There are cases when you need to migrate your database, especially when your systems evolve. In this situation moving the database from one Azure Subscription to another one, it is not enough.
Context The migration was required because of the business context and the way how the product evolved. When you need to do such a migration, there a few questions that you need to ask yourself. 1.What kind of Azure Cosmos DB API are you using? We used SQL API 2.What is the maintenance window? We had 24 hours for the entire system, with a 3-hour window for Azure Cosmos DB. 3.What is the database size? 20GB 4.What is the index size? 2.2GB 5.What are the average request and average throughput per second? The throughput is around 200 RU/s with around 25 requests/s
Current options At this moment in time, Azure Cosmos DB does not have a self-service feature that allows us to create and restore backups o…

Putting Form Recognizer on test - Extract labels from flight tickets (Cognitive Services)

Have you ever need to extract content from a document or image? I’m not referring just plain text, but key-values like tuples (e.g. name: Tom, age: 18) without having to do any additional manual steps.
Form Recognizer At this moment in time, we can find in private preview on Azure – Form Recognizer. It a service part of Cognitive Services that have an ML behind the scene, allowing us to analyse digital content and extract data that it is in key-value pairs or table data from forms.
Overview of the service The service can automatically extract this information without requiring us to do labelling of data. We need to provide at least 5 samples that are used by Form Recognizer to train the model. Once we have the model trained, we can start to extract content from our digital library. The API provided by the service can be used to get, delete or train a model and extract the keys and values. There is an SDK that is built on top of it for .NET, but for testing purpose, I used the API toge…

Cloud Maturity Level - IaaS vs PaaS and SaaS

Nowadays cloud is just a commodity, and the number of cloud providers is high (including the private one also). Most of them have a vast number of services that can be consumed from their marketplace, from classical VMs to messaging systems and data warehouse. Once you start working with multiple cloud providers, the maturity level of the cloud providers is crucial. When you want to optimise the cost and improve the quality attributes of IT solutions that you build or manage the maturity level is important.

When we look at the service list provided by a cloud important, it is essential to take into account the level of management that needs to be done by ourself. It is not the same if a cloud provider offers us just an image with Redis inside a VM or Docker in comparison with a full SaaS offering.
Depending on where each service is in the IaaS-PaaS-SaaS (and even FaaS) scale, the cost of development, automation, integration is impacted. The most significant impact is at management…

[Post Event] Global AI Bootcamp, Cluj-Napoca, 2019

At the end of this week, I was invited to take part in Global AI Bootcamp event in Cluj-Napoca. It was a great opportunity to transform to put an idea in practice and build a system that can extract information from plane tickets.
For this, I used Form Recognizer and it was a great experience. It took me less than 30 minutes to train the model and to extract the key information from the tickets. If you want to find out more about how I've done it you can check my slide deck. Next week I will follow-up with a blog post about it.

Happy to say that this was the last presentation for 2019. See you next year!

Title: Build your own airplane ticket processing system using Azure Cognitive Services
Abstract: Let's dive into the computer vision world by designing a system that can analyse the flight tickets and identify the other co-workers that will fly to the same destination as you.

[Post Evet] Data Platform Geeks, November 26th, 2019

In November I had the opportunity to be invited as a speaker as Data Platform Geeks conference, where I delivered a session about Azure Development Tool. It was a great experience from my side. I was impressed by the type of questions and the after session discussions that took place.
Thank you for the invitation. See you next time!

Title: Developer Tools for Microsoft Azure
Abstract: During this session we'll take a look at the proactivity tools that can be used to improve our development experience on Azure. We'll talk about tools from multiple areas like storage, computation, automation, cleaning and many more. All of them are free to use, build by the Azure community or Microsoft to improve the cloud experience.