Search
175 results for “oskardudycz”
-
So I just closed 150th PR to #Emmett. Nice milestone 🙂🎉
Also I did 2 releases recently driven by community changes.
Steadily, step by step bootstrapping the project with still small but vibrant community.
Check more in: https://github.com/event-driven-io/emmett
-
So I just closed 150th PR to #Emmett. Nice milestone 🙂🎉
Also I did 2 releases recently driven by community changes.
Steadily, step by step bootstrapping the project with still small but vibrant community.
Check more in: https://github.com/event-driven-io/emmett
-
We've all been there: trying to learn something new, only to find our old habits holding us back. We discussed today how our gut feelings about solving problems can sometimes be our own worst enemy.
Every architectural decision is a trade-off. The trick isn't finding the perfect solution - it's understanding the trade-offs well enough to make informed decisions. Try implementing things in practice, build up some muscle memory, and then revisit whether your paranoia level is too high or too low.
Our paranoia level isn't just about being careful - it's about understanding where that care is most needed. Looking at new technologies means finding the balance between respecting their power and not being afraid to use them.
The patterns that worked before aren't wrong - they're just part of our journey to understanding when different approaches make sense.
The key isn't to become less paranoid as you learn - it's to become more precisely paranoid. To know exactly which parts need your careful attention and which parts can flow naturally from your chosen patterns. That's how you grow not just in knowledge but in judgment.
How do I calibrate my paranoia level? I wrote about it in detail in the latest #ArchitectureWeekly
https://www.architecture-weekly.com/p/defining-your-paranoia-level-navigating
What's your paranoia level, and how do you deal with it?
-
I promised the next #ArchitectureWeekly a deep dive into React/Tanstack Query. And here it is! https://www.architecture-weekly.com/p/react-query-a-solution-for-frontend
I'm super happy that Tomasz Ducin agreed again to share his extensive look at Frontend Architecture and make it available for free.
We explored if a dedicated tool like React Query can prevent the usual headaches for handling server data like:
- stale info,
- redundant fetching,
- scattered “loading” flags.It was a lot of learning, all with hands-on explanation. I think that the webinar is a good example of how we can evaluate the exact tool choice in the wider architecture concept.
Watch the full video, drop a comment, and let us know which topics you’d like us to tackle next. 🙂
❤️ for resharing to your friends!
-
Just read such a nice e-mail on my phone! #Emmett got a first 🥉sponsor. Thank you Product Minds!
If you want to take back your applications back to the future with the event-driven check Emmett, as you see, it’s already getting trust in organisations 🙂
See the project: https://github.com/event-driven-io/emmett
If you’d like to also want to help make my work sustainable, deliver more and better,you can also become sponsor.
By that you also get support from me on your journey. Help me, help you 🙂
See sponsors perks: https://github.com/sponsors/event-driven-io
Resharing and liking this post also counts as help ❤️😅
-
Just read such a nice e-mail on my phone! #Emmett got a first 🥉sponsor. Thank you Product Minds!
If you want to take back your applications back to the future with the event-driven check Emmett, as you see, it’s already getting trust in organisations 🙂
See the project: https://github.com/event-driven-io/emmett
If you’d like to also want to help make my work sustainable, deliver more and better,you can also become sponsor.
By that you also get support from me on your journey. Help me, help you 🙂
See sponsors perks: https://github.com/sponsors/event-driven-io
Resharing and liking this post also counts as help ❤️😅
-
There’s a common misunderstanding that #Kafka “pushes” messages to consumers. In reality, it’s a pull-based system where each consumer actively requests data. This design choice means consumers control their own pace—handy for scaling out your application or gracefully handling temporary slowdowns. Instead of blindly pushing messages that might overwhelm one consumer, Kafka gives each consumer control over how much data it’s ready to receive.
Under the hood, concepts like heartbeats, error codes, and session timeouts ensure consumers stay in sync with the broker, even if one goes offline or a network hiccup occurs.
Heartbeats serve double duty: they confirm a consumer is alive and also act as a signal for rebalancing when something changes in the group.
Rather than maintaining a separate notification channel, Kafka folds these “you need to rebalance!” alerts into its standard heartbeat responses—keeping the design both elegant and efficient.
When you dig deeper, you’ll see how partition assignments, group coordinators, and long polling all fit together to create a surprisingly flexible system.
If you’ve ever wondered how that works, or why knowing cryptic consumer configs like fetch.max.wait.ms or session.timeout.ms can be important. Or even make or break performance, my latest post unpacks these mechanics with hands-on examples.
In new #ArchitectureWeekly edition, I explore the specifics with code snippets and real-world examples, covering session timeouts, error codes, partition assignments, and how each piece can make or break a data pipeline.
That's the third part of my "Nerd sniping Kafka" series.
Give it a read, and let me know what you think!
https://www.architecture-weekly.com/p/understanding-kafkas-consumer-protocol
-
Let's discuss today how Kafka handles message consumption! We'll start by explaining Consumer Groups and how they manage consumers and data distribution.
Then, we'll explore partition assignments, fault tolerance, and the trade-offs involved in more detail. We'll wrap up with real-world implications of Kafka’s design, comparing it to other solutions and discussing whether it's always as great as pictured.
Kafka model is decent, but it can fall into the following issues:
1. Uneven Partition Loads and Processing Skew
2. Processing Pauses During Rebalances
3. Frequent Updates to Offset Storage
4. Handling Workload Changes Inefficiently
5. Rebalance Churn in Dynamic Environments
That stuff can be ignored in the dev environment, but when you're in production, that stuff can give you a serious headache.
Want to learn more? Check the latest #ArchitectureWeekly and drop me a note on how you liked it!
https://www.architecture-weekly.com/p/kafka-consumers-under-the-hood-of
-
🚀🧑🔬 Next big announcement in #Emmett. It just got the first version of the #SQLite event store, thanks to Dave's great work.
It's early, so it may have some rough edges, but it works, and you can play with it!
See release notes! https://github.com/event-driven-io/emmett/releases/tag/0.25.0
Fun times!
-
I'm using the Native #NodeJS Test Runner in #Emmett successfully, and I'm super happy about it. Yet, I'm considering moving to Vitest as I'll need to have more cross-environment testing. Do you have experience with it?
I target the core #Emmett package to be run both in Browser and Server. Today, I'll publish the first version of the #SQLite event store, so I'll need more and more cross-platform checks.
For now, I've been manually performing basic checks using Playwright, but that's not sustainable in the long term.
I heard only good words on Vitest, but what are your experiences and thoughts?
-
@rdnt it's great that you're saying that, as that's why I created #Pongo: https://github.com/event-driven-io/Pongo
Together with #Emmet PostgreSQL support it makes it already possible (at least if you're in Node.js space).
See:
- https://event-driven.io/en/emmett_projections_testing/
- https://event-driven.io/en/projections_and_event_metadata/And more about Pongo internals: https://event-driven.io/en/pongo_behind_the_scenes/
-
How to build #MongoDB Event Store? The neat part is you don't!
Oh well, past me thought like that, but Alexander Lay-Calvert persuaded me to change my mind and did most of the work. We delivered #MongoDB storage, and it went surprisingly well. I wrote a detailed write-up on how to do it!
There were many interesting challenges in how to make it consistent and performant, so I think that's an interesting read.
I think it's a good guide if you're considering using #MongoDB as anevent store. Surprisingly, I have had numerous discussions recently with people trying to do it.
If you're considering using key-value databases like #DynamoDB and #CosmosDB, then this article can also outline the challenges and solutions.
My first choice is still on #PostgreSQL, but I'm happy with the #MongoDB implementation in #Emmett.
If #MongoDB is already part of your tech stack and the outlined article constraints are not deal-breakers, this approach can deliver a pragmatic, production-friendly solution that balances performance, simplicity, and developer familiarity.
I'm not sure what took longer, delivering the implementation or writing this article. So I'll appreciate the feedback and sharing with your friends. ❤️
-
"Event Streaming is not Event Sourcing!" is probably the article I'm linking the most from those that I wrote. It's part of my Don Quixote crusade to untangle those terms, as I've seen many significant architectural decisions made without realising those differences. And the consequences were severe.
There's a skewed perspective conflating #EventSourcing with #EventStreaming.
I know those terms sound similar. I know many people tell you that you can use Kafka as an event store, but...
Event Sourcing is about making decisions, capturing their outcomes (so events) and using them to make further decisions (so events are the state).
Event Streaming is about moving information from one place to another and integrating multiple components.
Event stores are databases. They may have similar capabilities as Event Streaming solutions, but the focus is different:
- event stores on consistency, durability and quality of data,
- event streaming solutions (like #Kafka) are focused on delivery, throughput and integration.So, to give a bold comparison, saying that Kafka is an event store is almost like saying that #RabbitMQ is a database.
I really like Kafka; I've been using it successfully, along with the Event Sourcing tool. That's why I believe it's important to know the difference and how to compose those tooling instead of mixing them and getting a hangover.
Check more in my article 👇
https://event-driven.io/en/event_streaming_is_not_event_sourcing/
-
To my event-driven speaker friends. There's only one week left to apply to the #EventCentric conference. There are few conferences where you can show your event-driven face and go down the rabbit hole.
The conference is a nice and safe space for discussion and showing your ideas, tools, and case studies. It's a sub-conference of @dddeu. Dates: June 4-5, 2025.
This time located in Antwerp. The city with the longest underwater walking tunnel I saw! I were there twice and enjoyed it.
I'm helping the organisers a bit, and I'd love to see talks around #EventSourcing and #EventStreaming, both modelling and applying event-driven ways in practice.
Don't wait and send your proposals here: https://2025.eventcentric.eu/cfp/
-
To my event-driven speaker friends. There's only one week left to apply to the #EventCentric conference. There are few conferences where you can show your event-driven face and go down the rabbit hole.
The conference is a nice and safe space for discussion and showing your ideas, tools, and case studies. It's a sub-conference of @dddeu. Dates: June 4-5, 2025.
This time located in Antwerp. The city with the longest underwater walking tunnel I saw! I were there twice and enjoyed it.
I'm helping the organisers a bit, and I'd love to see talks around #EventSourcing and #EventStreaming, both modelling and applying event-driven ways in practice.
Don't wait and send your proposals here: https://2025.eventcentric.eu/cfp/
-
To my event-driven speaker friends. There's only one week left to apply to the #EventCentric conference. There are few conferences where you can show your event-driven face and go down the rabbit hole.
The conference is a nice and safe space for discussion and showing your ideas, tools, and case studies. It's a sub-conference of @dddeu. Dates: June 4-5, 2025.
This time located in Antwerp. The city with the longest underwater walking tunnel I saw! I were there twice and enjoyed it.
I'm helping the organisers a bit, and I'd love to see talks around #EventSourcing and #EventStreaming, both modelling and applying event-driven ways in practice.
Don't wait and send your proposals here: https://2025.eventcentric.eu/cfp/
-
To my event-driven speaker friends. There's only one week left to apply to the #EventCentric conference. There are few conferences where you can show your event-driven face and go down the rabbit hole.
The conference is a nice and safe space for discussion and showing your ideas, tools, and case studies. It's a sub-conference of @dddeu. Dates: June 4-5, 2025.
This time located in Antwerp. The city with the longest underwater walking tunnel I saw! I were there twice and enjoyed it.
I'm helping the organisers a bit, and I'd love to see talks around #EventSourcing and #EventStreaming, both modelling and applying event-driven ways in practice.
Don't wait and send your proposals here: https://2025.eventcentric.eu/cfp/
-
To my event-driven speaker friends. There's only one week left to apply to the #EventCentric conference. There are few conferences where you can show your event-driven face and go down the rabbit hole.
The conference is a nice and safe space for discussion and showing your ideas, tools, and case studies. It's a sub-conference of @dddeu. Dates: June 4-5, 2025.
This time located in Antwerp. The city with the longest underwater walking tunnel I saw! I were there twice and enjoyed it.
I'm helping the organisers a bit, and I'd love to see talks around #EventSourcing and #EventStreaming, both modelling and applying event-driven ways in practice.
Don't wait and send your proposals here: https://2025.eventcentric.eu/cfp/
-
I'm working on a longer article explaining how to build an event store on top of #MongoDB. We did that in #Emmett. It's not a perfect choice, but it works well enough for many cases.
While writing it, I got back to one of my favourite talks I gave: building an event store in one hour. I did it on top of #PostgreSQL, and actually, in 25m; the rest is the explanation.
If you want some time and want to have fun and learning experience, check: https://www.youtube.com/watch?v=gaoZdtQSOTo
...and drop me a not how you liked it 🙂
-
Thinking of building “one #platform to rule them all”? You’re not alone—and it’s trickier than it seems. Right before Christmas, I wrote a post about the hot topic. As my thoughts spin up some good discussion, I expanded it in the latest #ArchitectureWeekly.
I discussed why these big, central solutions usually peak after 1–2 years, then erode under patches, shifting priorities, and detachment from real business needs.
I also brought insights from the 2024 #DORA Accelerate State of #DevOps report, plus stories from Spotify, Stack Overflow, and more.
I see many of my clients trying to apply it, some succeeding, some more, but all struggling. I’m not an expert in building internal platforms, but I was a part of the core teams, shaping continuous integration and delivery processes, and I see many similarities.
If you’re curious about my experience staying sane and keeping your platform or core team on track (without becoming that giant one-size-fits-all monster), check it out!
https://www.architecture-weekly.com/p/thoughts-on-platforms-core-teams
And that’s a free post, so if you enjoyed it, feel free (pun intended) to share it with your friends!
I would also love to hear your thoughts!
-
Last month I’ve made the Black Friday „offer”. And results surprised me. I gave 30 days trial for free to #ArchitectureWeekly.
Anyone could subscribe, read all articles, watch all videos (over 30h) and decide whether to stay.
I think that it’s fair for old subscribers and good option for new.
What’s the surprising part? Out of 60 people who gave it a try over 30 decided to stay with paid subscription. That’s a lot, as currently after that I have 197.
Super happy about the trust.
I reshaped the format last year, hoping to make it sustainable. I’m still not fully there yet, but that brought me closer. And enough to continue trying.
Thanks!
-
One of the reasons why #EventSourcing is not (yet?) mainstream is a lack of trust that it works on the production. Mostly, that comes from being a bit different from the traditional approach.
That's why I made testing tooling a core part of #Emmett. You don't need to install anything besides the library. When you install core package, you also get testing tooling for components.
I believe that #EventSourcing is great for testing. It aligns greatly with Behaviour-driven Design principles.
1/
-
While working on the final touches on #MongoDB event store implementation in #Emmett, I'm bringing you reminder: Event stores are key-value databases!
At least logically. Physically, they're, most of the time, append-only logs, but why should you care?
Do you care on a daily basis that relational databases are also append-only logs internally? Yes, they are with Write-Ahead/Transaction logs?
See: https://event-driven.io/en/relational_databases_are_event_stores/
1/
-
Did anyone try to upgrade to Express.js v5? I'm considering bumping #Emmett package to it, but I'm not sure if it's worth it (so is it stable etc.).
Thanks in advance for your feedback, or for tagging your friends who can share their experience 🙂
-
It seems that you can give #ArchitectureWeekly as a gift. That’s probably not the best gift you can give for Christmas but still better than socks or photo frame, so there you have it https://www.architecture-weekly.com/subscribe?gift=true&utm_source=holiday-gifting-header&utm_medium=web 🤷♂️🎅
-
My approach to building tooling is to encourage good design, and make that easier. Yet, I also don’t want to tell people how to live. That’s why I enable some scenarios that can help in applying trade-offs.
An example of that is the recent PR to
#Emmett: https://github.com/event-driven-io/emmett/pull/152It adds in-process hook called after events were appended. It doesn't guarantee at-least once delivery. It doesn't guarantee ordering. So it’s limited to scenarios where you just want to broadcast news.
1/
-
Read my full take in the latest #architectureweekly https://www.architecture-weekly.com/p/on-getting-the-meaningful-discussions
What are your tricks for having decent design discussions? 🤔
3/3
-
In the latest #ArchitectureWeekly, I want to be less techy and focus more on the soft part of being an architect. I uncovered some of my tricks for striking a balance between talking and not talking and for using talking to achieve the outcome.
I explained why I think that we should:
1. Ask and listen more often than tell
2. It’s okay to agree to disagree
3. Split the discussions on facts from discussions on feelings.
4. Focus on similarities, not differences.
5. Avoid jargon at all costs.2/
-
The last 4 days were intensive. 4 afternoon sessions about #EventSourcing (morning one for the attendees).
It was also my first one with explaining also #Emmett as a solution to make working with Event Sourcing easier accessible. Great!
And those are the best types of workshops: done for practitioners that have a real business need and using it in their real projects.
Plus seeing others building systems based on tools you build is special.
I hope to have more of those to come!
-
I was always saying that #MongoDB is not the best choice for an event storage, and guess what? I’m one merged PR from having a stable implementation of it #Emmett 😅
https://github.com/event-driven-io/emmett/pull/136
So if you’re in #NodeJS space and you’re maintaining a homebrew one, it’s good to consider switching to it 😅