Sep 27, 2021 · 17 min read
Developers build modern enterprise applications on the orchestration of a complex network of microservices. Over time, as the number of applications and microservices increases, the complexity of the orchestration increases as well. Complexity in typical microservices architecture Reusable APIs address the problem of complexity by allowing multiple applications to rely on a few independent microservices that expose the data and functions of their domain. Why Should We Build Reusable APIs?
Sep 26, 2021 · 9 min read
Development teams frequently need to build new microservices to either add new functionality or replace existing microservices. However, microservices must support some standard features such as providing insight into their health through logging, allowing monitoring, and following the organization’s security standards. A reusable microservices platform can help developers jumpstart the development process by providing reusable components that they can use to build new microservices. To implement a reusable microservices platform, you can use the sidecar pattern or build NuGet packages that are installed in every microservice.
Aug 12, 2021 · 10 min read
Simple applications rely on synchronous request-response protocols. It is one of the most common patterns we encounter every day in applications and websites where you press a button and expect a response. As the number of services increases, the number of synchronous interactions between them increases as well. In such a situation, the downtime of a single system also affects the availability of other systems. Synchronous interaction channels between services Google defines a set of principles and practices for attaining a high Service Level Agreement (SLA) by increasing the SLA of individual services.
Jul 17, 2021 · 9 min read
Applications or databases running out of disk space are a common issue that the Operations team addresses regularly. This problem has existed since the days we used to host applications on bare metal servers and is still present in virtualized and container environments. However, since we have reached a stage where the compute and storage systems are decoupled from each other, granting additional storage to applications rarely requires updating the application or modifying the underlying application host infrastructure.
Bulk Copy Data Sharing Pattern for Applications in Azure with Data Explorer, Data Factory & Cosmos DB
Jul 12, 2021 · 12 min read
🎁Special Giveaway@ManningBooks just launched Data Engineering on #Azure by @vladris. I am giving away 5 eBooks to my Tweeps!! Rules 👇🏻 ♥ Like 👉🏻 Follow me 🔃 Retweet and tag your friends in comments who may be interested#contest #giveaways #ebooks pic.twitter.com/hc7jNqCj25 — Rahul Rai (@rahulrai_in) July 12, 2021 In the initial stages of a data platform development, data size is small, and you can easily share it via email or services such as Power BI.
Jun 30, 2021 · 9 min read
Sending messages reliably and quickly between services is a core requirement for most distributed systems. Apache Kafka is a popular, durable message broker that enables applications to process, persist and re-process streamed data with low latency, high throughput, and fault tolerance. If you are a beginner in Kafka, please consider reading the articles in my Apache Kafka series to get up to speed in no time. One of my Twitter friends, among others, reached out to me to understand how to implement retries in Kafka.
May 23, 2021 · 6 min read
As an engineer, to succeed in product development, you have to change your perspective and move from valuing technology or the product to focusing on the business model. As an entrepreneur or a product manager, you have to understand that you are not developing a product but a business model. A product manager must continually ask themselves the question: What is the minimum experiment I should do next to minimize uncertainty (or learn) the most?
May 08, 2021 · 10 min read
In this series: Distributed Tracing with Jaeger Simplifying the setup with Tye (this article) Tye is an experimental dotnet tool from Microsoft that aims to make developing, testing, and deploying microservices easier. Tye’s opinionated nature greatly simplifies the lifecycle of development and deployment of .NET Core microservices. To understand the benefits of Tye, let’s enumerate the steps involved in the development and deployment of the DCalculator application to Kubernetes:
Apr 26, 2021 · 7 min read
In this series: Distributed Tracing with Jaeger (this article) Simplifying the setup with Tye Modern microservices applications consist of many services deployed on various hosts such as Kubernetes, AWS ECS, and Azure App Services or serverless compute services such as AWS Lambda and Azure Functions. One of the key challenges of microservices is the reduced visibility of requests that span multiple services. In distributed systems that perform various operations such as database queries, publish and consume messages, and trigger jobs, how would you quickly find issues and monitor the behavior of services?
Apr 11, 2021 · 10 min read
In this series: Development environment and Event producer Event consumer Azure Event Hubs integration (this article) Azure Event Hubs is a horizontally scalable event ingestion service capable of receiving and processing millions of events per second. It supports Apache Kafka Producer and Consumer API that you can use as an alternative to running a self-managed Apache Kafka cluster. Now you can integrate the Kafka ecosystem applications such as Kafdrop and many others with Event Hubs.