Kafka Message Filtering: An Analysis

A lot of companies nowadays use event-driven architectures in their day-to-day business activities, especially when they desire their applications to own real-time or near real-time reactiveness.

In such a scenario, during the interactions among the three main types of actors — producers, message brokers, and consumers – a lot of messages are exchanged. Nevertheless, under certain circumstances, some of these messages might not be of interest and thus they are discarded and ignored.

Secure Your API With JWT: Kong OpenID Connect

Good Old History: Sessions

Back in the old days, we used to secure web applications with sessions. The concept was straightforward: upon user authentication, the application would issue a session identifier, which the user would subsequently present in each subsequent call. On the backend side, the common approach was to have application memory storage to handle user authorization - simple mapping between session ID and user privileges. 

Unfortunately, the simple solution had scaling limitations. If we needed to scale an application server, we used to apply session stickiness on the exposed load balancer:

Harmonizing AI: Crafting Personalized Song Suggestions

Hello, fellow machine learning enthusiasts! 

After several years of working as a Data Engineer, I've embarked on a new journey to delve into the diverse realms of machine learning. This article marks the beginning of my exploration through various projects aimed at learning and understanding this fascinating field. While I may be starting with Large Language Models (LLMs), I view it as an initial step to ignite my passion and motivation for this new endeavor. Join me as I dive into the world of machine learning, eager to expand my knowledge and skills. 

The Cost of Ignoring Static Code Analysis

Within the software development community, there’s no denying the importance of unit testing. We all understand the need to isolate code for testing and quality assurance; it’s an unquestionable necessity in writing code. But how can we be sure that the code we deploy is as good as it can possibly be? The answer is: static code analysis.

Too often, businesses choose not to prioritize static analysis — which ultimately impacts the quality of their software. The truth is that we can’t afford to sidestep this part of the CI/CD development pipeline if we want to create the best possible software that helps a business compete and win in their market.

Exploring Zero-Trust Architecture Implementation in Modern Cybersecurity

Cyber threats are growing more sophisticated, frequent, and damaging, with the average cost of a data breach now reaching $4.24 million, according to IBM’s 2021 report. Clearly, organizations need more robust cybersecurity protections in place, which is leading many to adopt a zero-trust architecture approach. 

Zero-trust flips conventional security on its head by shifting from an implicit trust model to one where verification is required every step of the way. No users, devices, or workloads are inherently trusted — authentication and authorization are rigorously enforced at all times. This assumes that breaches will occur and limits lateral movement and access once threat actors break through the external perimeter.