System Design & Code Insights
Create systems joyful to develop and maintain
Deploy on Fridays and have great weekends
Spend 10 mins investigating production issues
Spend 30 mins a week on the maintenance
Enjoy meaningful day-to-day work
Recent posts
- Supercharge your logging MDC with Kotlin: Part 2. Spring Controllers.In the previous article, we improved Kotlin MDC to make it more convenient and safe. However, there is an issue with it — it isn’t compatible with Spring Controllers. Why is that so and what can we do about it? Read further to find out! This article covers only blocking code. Reactive code and coroutines have their… Read more: Supercharge your logging MDC with Kotlin: Part 2. Spring Controllers.
- Supercharge your logging MDC with Kotlin: Part 1If you’re using any JVM-based language, then you are likely familiar with logging MDC (Mapped Diagnostic Context) – a default solution for passing the logging context. However, while being widely used and well known, with good support from libraries and services (such as ELK stack), MDC still has some issues and rough edges. Let’s use… Read more: Supercharge your logging MDC with Kotlin: Part 1
- When database integration beats microservicesFrom one solution to another, follow our journey to find the best design for the system. Find out how database integration comes to the rescue.
- Why you shouldn’t use LocalDateTime (to avoid production issues)On one unfortunate day, the alert is fired – there is a difference between data in two systems that should be in sync. You checked all the code that might be related, and everything looks good. However, the data timestamps are indeed different. Or some users complain about incorrect history records order. Again, the code looks fine, and only some users are affected. Or maybe after some server maintenance, your data doesn’t look like the day before. You didn’t touch the code, and there are no changes in the database, but the system returns different results. What do all these cases have in common?