Microservice Governance - Resilience Patterns - Part 2
In this article, we continue the discussion on Resilience Patterns in Microservice Architecture, specifically focusing on Circuit Breakers, Fallbacks, and Bulkheads. We explore how to prevent a client...
Microservice Governance - Routing Patterns
These patterns deal with how client-side services discover locations of server-side services and are routed to them. In cloud-based applications with hundreds of microservices and instances, it is cri...
Workflow Engines Comparisons - Evaluating Netflix Conductor, Temporal (Uber Cadence), Zeebe, and Airflow for Workflow and Orchestration
Netflix Conductor, Temporal (Uber Cadence), Zeebe, and Airflow were evaluated for their use in various business scenarios, including data pipelines, AI/ML workflows, customer support workflows, and de...
Dashboard for Data Drift Detection in Python
Change is constant in the Machine Learning world, so monitoring production models is crucial to prevent wrong predictions caused by data drift. Learn how to build a dashboard for data drift detection ...
Quick and Efficient Distributed Tracing in .NET
To log the complete call chains and see what your microservices really do, you need efficient distributed tracing in .NET. This article will guide you on how to implement it quickly using the AsyncLoc...
Returns - Make your functions return something meaningful, typed, and safe!
Returns is a Python package that brings functional programming to Python and provides a bunch of primitives to write declarative business logic while enforcing better architecture. It is fully typed w...
Implementation Of CQRS in .Net 6
This article discusses the concept of Command Query Responsibility Segregation (CQRS), an architectural design pattern that splits systems actions into commands and queries. It also explains the benef...
Stop Using Notebooks: Why Data Scientists Should Code Like Developers
Data scientists often use notebooks at the early stages of a project to explore solutions and validate technical feasibility. However, coding in notebooks can prevent the implementation of good softwa...
OpenTelemetry .NET | Monitor a .NET application with OpenTelemetry & SigNoz
C# (pronounced C-Sharp) is one of the top frameworks for building modern applications using .NET. OpenTelemetry is an open source web standard for instrumenting cloud-native applications that gives in...
Async All The Way Down! SqlAlchemy 1.4 now supports asyncio
SqlAlchemy 1.4 now supports asyncio, which means that it will be async all the way down to the last turtle. This is a great improvement for those who have been using SqlAlchemy with Tornado and have h...
FastEnum - The Fastest Enum Utilities for C#/.NET
FastEnum is the fastest enum utilities for C#/.NET, achieving zero allocation and designed for easy use like System.Enum. It supports .NET Framework 4.6.1+, .NET Standard 2.0+, and .NET 5.0+. It provi...
Locust - A modern load testing framework
Locust is an open source load testing tool that helps to define user behaviour with Python code and swarm systems with millions of simultaneous users. It eliminates the need for clunky UIs or bloated ...
Airbnbs Microservices Architecture: Journey to Quality Engineering
This article discusses Airbnbs journey towards a microservices architecture and the impact on quality engineering. It covers the benefits and challenges of microservices and how Airbnb approached the ...
Tye, starting and running multiple APIs with a single command
Today, most of the applications consist of multiple projects. Most of them have some kind of front-end application (e.g. Angular) that consumes one or more .NET C# APIs, which in their turn might also...
Python Await Async Tutorial with Real Examples and Simple Explanations
Learn how to use the advanced features of Python, specifically the await and async methods, to make your programs faster and more efficient. This tutorial focuses on Python 3.7 and describes the diffe...
Redis client-side cache with async Python
Redis is a powerful and fast storage for caching in modern applications. With the release of Redis 6.0, a new feature called client-side caching was introduced, enabling users to keep a copy of cache ...
Python Asynchronous Programming Fundamentals
Python introduced asynchronous programming capabilities in version 3.4 in 2014, with further notable improvements in almost every minor version since. This article aims to elucidate the fundamental co...
Graceful Termination with Modern .NET
This article discusses the importance of graceful termination in Kubernetes pods and explores various ways to handle graceful termination in .NET 6 and ASP.NET Core 6.0. It covers preStop hooks and ob...
The 2023 Python Developer Roadmap
Looking to become a Python developer? This article offers a roadmap to help you get started. Learn Python programming language, essential Python tools, and frameworks for web development, data science...
Spark Tips. Partition Tuning
Clusters will not be fully utilized unless you set the level of parallelism for each operation high enough. In this blog post, the author provides tips and optimization methods that help achieve high ...