RabbitMQ – Observability and Monitoring
Looking inside an application to understand how it’s going and what, potentially, is wrong is a “must have” when you’re drawing a solution. RabbitMQ is not an exception at this requirement thus, we...
View ArticleHow Logstash can carry your logs for you
Logstash is a very useful tool to help you carry logs from your application inside a search engine as ElasticSearch for Log aggregations. Once logs imported, you could analize them by using a visual...
View ArticleMake API predictable – HTTP Response Status Codes
Make Api predictable is a best practice that helps developers to keep code maintainable and avoid bugs. In the same way, Clients can use them without unexpected behaviours or pitfalls. Give back a...
View ArticleGoodbye RestTemplate – let’s welcome WebClient Interface
RestTemplate has been declared “deprecated” since Spring Framework version 5.2.2. WebClient is its announced substitute and brings the reactive approach at runtime. So, this means not a simple “find...
View ArticlePull and Push Metrics inside Grafana
Application monitoring is always a vital activity. Unfortunately, it’s not an easy task and, frequently, logs are not enough to work out problems as load average, run out of resources, and even...
View Articleirate() vs rate() – What’re they telling you?
Prometheus makes available great functions for data aggregation by timeline. Among these functions, I focused my analysis on irate() and rate() which give us similar outcomes but they work in different...
View ArticleGrafana – it’s not only a metrics matter
Metrics are useful, they tell you how your application is going, but they might not be enough when you came across an issue. Applications produce logs, and you need to dig into them to find out what...
View ArticleRabbitMQ Exchange types – Put them into practice
Event Driven Architecture is a growing solution in a lot of projects where Event-Driven pattern is adopted. RabbitMQ makes available a message broker to get communication between different components...
View ArticleRabbitMQ – Observability and Monitoring
Looking inside an application to understand how it’s going and what, potentially, is wrong is a “must have” when you’re drawing a solution. RabbitMQ is not an exception at this requirement thus, we...
View ArticleHow Logstash can carry your logs for you
Logstash is a very useful tool to help you carry logs from your application inside a search engine as ElasticSearch for Log aggregations. Once logs imported, you could analize them by using a visual...
View ArticleMake API predictable – HTTP Response Status Codes
Make Api predictable is a best practice that helps developers to keep code maintainable and avoid bugs. In the same way, Clients can use them without unexpected behaviours or pitfalls. Give back a...
View ArticleGoodbye RestTemplate – let’s welcome WebClient Interface
RestTemplate has been declared “deprecated” since Spring Framework version 5.2.2. WebClient is its announced substitute and brings the reactive approach at runtime. So, this means not a simple “find...
View ArticleReactive or Asynchronous? Trying Avoid any headache choice
Is it better to use Spring Webflux project, with its Reactive API, or Asyncronous support for calling a method in separates thread? Performance, resource consumption, how many factors should I consider...
View ArticleRESTFul Api – Response status and operation result
Giving back a meaningful http status code and message to a client when it invokes our RESTFul service is a correct and desirable behaviour expected by our consumers. It’s not enough including the...
View ArticleApache Kafka and Rabbit – Dealing with Stream
Very often I come accross article about Stream processing in Message Broker (Apache Kafka, RabbitMq, …) where it seems that the difference between a traditional and Stream message processing depends on...
View ArticleWhy is Java moving to Functional Programming ?
Functional Programming (FP) has been introduced in JDK since version 8 with JSR 335 (Lambda Expressions for the Java Programming Language). Frameworks as Spring and others have been changing their...
View ArticleCan Ci/Cd get on with databases?
While it’s easy to apply Ci/Cd to stateless components such an application or job, the things become more complicated when we try applying the same method to statefull infrastructure as database or...
View ArticleCombining cloneable interface with Memento Pattern
Clonable interface and Memento pattern: what do they have in common? At first glance, I’d say nothing, the first is a JDK interface while the last is a programming language pattern, yet, once bind...
View ArticleHow Logstash can carry your logs for you
Logstash is a very useful tool to help you carry logs from your application inside a search engine as ElasticSearch for Log aggregations. Once logs imported, you could analize them by using a visual...
View ArticleMake API predictable – HTTP Response Status Codes
Make Api predictable is a best practice that helps developers to keep code maintainable and avoid bugs. In the same way, Clients can use them without unexpected behaviours or pitfalls. Give back a...
View Article