Seed Postgres Database with FluentMigrator

In this blog post, we will address how to seed your Postgres Database when using FluentMigrator. In the example context, we have a Postges Database running on a docker container, and have a Web Api connecting to the database using Dapper. Dapper is a micro-orm, and while it is pretty good in what is does, … Continue reading Seed Postgres Database with FluentMigrator

Implementing Saga 002 : Message Broker

In the earlier part of this series, we created the building blocks of our microservice - the individual services. To recollect, we build 3 services, namely, Order Service, Inventory Service, and Payment Service. In this part, we will continue building our example Saga implementation. In previous post, we had created endpoints in Order Service to create an … Continue reading Implementing Saga 002 : Message Broker

Implementing Saga 001 : Building Services

In this series of post, we will build an example for Saga Pattern. We will be using the Choreography Pattern for the example. If you are interested to read more on Saga, please check out my article on Introduction to Saga Pattern. This example would use RabbitMq as the message broker. To demonstrate the pattern, let us consider the … Continue reading Implementing Saga 001 : Building Services

Compare JSON Arrays

How do you compare two similar JSON array set ? I bet that is a scenario you might have across atleast once in your developer life. Let us say you have following two sets of JSONs. Json Set 1 [ { "SourceLocation":"England", "DestinationLocation":"Spain", "DeliveryDate":"9/12" }, { "SourceLocation":"England", "DestinationLocation":"Germany", "DeliveryDate":"9/12" } ] Json Set 2 [ … Continue reading Compare JSON Arrays

The required modifier : Understand the limitations

C# 11 introduced the required modifier, which indicates that the applied peroperties and fields should be initialized by all available constructors or using object initializer. We learned more about the modifier in our earlier post. In this post, we take a look into a limitation of the functionality. Consider the following code. publicclassFoo { public required string Name {get;set;} public … Continue reading The required modifier : Understand the limitations

K-Sum – A generalized solution

In this blog post, we will attempt to address the 4-Sum problem from Leet code using the generic approach of K-Sum. Let us state the official definition of the problem. Given an array nums of n integers, return an array of all the unique quadruplets [nums[a], nums[b], nums[c], nums[d]] such that: 0 <= a, b, … Continue reading K-Sum – A generalized solution

QT #3 : Hello World using Qt Widgets

Earlier in this series of Qt byte sized tutorials, we wrote our first program, a console based "Hello World". In this part, we will build a GUI application (after all Qt is mainly a GUI Framework) using Qt Widgets. In doing so, we will also leverage the functionalities of Slots and Signals, which we learned in previous post. Widgets … Continue reading QT #3 : Hello World using Qt Widgets

QT #2 : Signals and Slots

In this section, we will sneak peak into one of the key concepts introduced by Qt - Signals and Slots. Qt uses Signals and slots for communicating between objects. Or to be more precise, all objects that derieved from QObjects (or one of its subclasses). Objects often want to communicate with each other, particularly in GUI programming where … Continue reading QT #2 : Signals and Slots

gRPC-Web : Using gRPC over browser application

Previously, we created a gRPC server in .NET and connected it using a Flutter Desktop client. In this blog post, we would attempt to connect a web application running on a browser to the gRPC server. We will look at the problems, and the solutions we have, particularly, the gRPC-Web .Net Microsoft have come out … Continue reading gRPC-Web : Using gRPC over browser application