Posts by categories
TypeScript
- Bootstrapping CRUD with Pongo
- Running a regular SQL on Pongo documents
- Pongo behind the scenes
- Pongo gets strongly-typed client, migrations, and command line tooling
- How to tackle compatibility issues in ECMA Script modules (and in general)
- Structural Typing in TypeScript
- Why Partial<Type> is an extremely useful TypeScript feature?
Architecture
- My Architecture Drivers
- Not all issues are complex, some are complicated. Here's how to deal with them
- What Dune can tell us about setting our goals
- How to deal with privacy and GDPR in Event-Driven systems
- GDPR for busy developers
- In the defence of Object-Relational Mappers
- Internal and external events, or how to design event-driven API
- How to design software architecture pragmatically
- Is the Strategy Pattern an ultimate solution for low coupling?
- How to scale out Marten
- Vertical Slices in practice
- Follow the money to get a better design
- Removability over Maintainability
- Don't let Event-Driven Architecture buzzwords fool you
- Testing asynchronous processes with a little help from .NET Channels
- How to get all messages through Postgres logical replication
- How events can help in making the state-based approach efficient
- How Postgres sequences issues can impact your messaging guarantees
- Writing and testing business logic in F#
- Push-based Outbox Pattern with Postgres Logical Replication
- What do the British writer and his fence have to do with Software Architecture?
- Why are we afraid of our decisions?
- Immutable Value Objects are simpler and more useful than you think!
- How to quickly scale a legacy monolith?
- How to slice the codebase effectively?
- Will it scale... down?
- Generic does not mean Simple
- Outbox, Inbox patterns and delivery guarantees explained
- Architect Manifesto
Event Sourcing
- Using event metadata in event-driven projections
- Writing and testing event-driven projections with Emmett, Pongo and PostgreSQL
- Combining the To-Do List and the Passage Of Time patterns for resilient business workflows
- How to build an in-memory Message Bus in TypeScript
- Event modelling anti-patterns explained
- I'm no longer Marten maintainer
- Testing Event Sourcing, Emmett edition
- Join my Event Sourcing workshops at Techorama and DDD Europe and speed up your journey!
- Should you always keep streams short in Event Sourcing?
- Implementing Closing the Books pattern
- Announcing Emmett! Take your event-driven applications back to the future!
- Production-Grade Event Sourcing Workshop - Modelling, DevOps, Process
- How TypeScript can help in modelling business workflows
- Stream ids, event types prefixes and other event data you might not want to slice off
- Should you record multiple events from business logic?
- Hitchhiker's Guide To Moving From Relational Data To Events
- Anti-patterns in event modelling - Clickbait event
- Oops I did it again, or how to update past data in Event Sourcing
- My journey from Aggregates to Functional Composition
- Event transformations, a tool to keep our processes loosely coupled
- Prototyping, an underestimated design skill
- Could you help me by filling a short survey about an online course?
- Recap of Event Sourcing Live 2023
- The Holy Grail syndrome
- Anti-patterns in event modelling - I'll just add one more field
- Is the audit log a proper architecture driver for Event Sourcing?
- General strategy for migrating relational data to document-based
- How to test event-driven projections
- Publishing read model changes from Marten
- Ensuring uniqueness in Marten event store
- Projecting Marten events to Elasticsearch
- How to handle multiple commands in the same transaction
- Set up OpenTelemetry with Event Sourcing and Marten
- Event-driven projections in Marten explained
- Guide to Projections and Read Models in Event-Driven Architecture
- How to validate business logic
- Let's build event store in one hour!
- Explicit events serialisation in Event Sourcing
- The magic is that there is no magic. Or how to understand design patterns.
- Share your story on Event Sourcing Live 2023
- Mapping event type by convention
- Never Lose Data Again - Event Sourcing to the Rescue!
- Testing business logic in Event Sourcing, and beyond!
- Event Versioning with Marten
- Slim your aggregates with Event Sourcing!
- Straightforward Event Sourcing with TypeScript and NodeJS
- Union types in C#
- How to effectively compose your business logic
- Event-driven distributed processes by example
- Should you throw an exception when rebuilding the state from events?
- Persistent vs catch-up, EventStoreDB subscriptions in action
- How to build a simple event pipeline
- Are Temporal Tables an alternative to Event Sourcing?
- Introduction to Event Sourcing - Self Paced Kit
- How to ensure uniqueness in Event Sourcing
- A simple trick for idempotency handling in the Elastic Search read model
- Using strongly-typed identifiers with Marten
- Integrating Marten with other systems
- How to do snapshots in Marten?
- Simple patterns for events schema versioning
- Let's talk about positions in event stores
- How to build event-driven projections with Entity Framework
- Anti-patterns in event modelling - State Obsession
- Anti-patterns in event modelling - Property Sourcing
- How to get the current entity state from events?
- When not to use Event Sourcing?
- How to scale projections in the event-driven systems?
- How using events helps in a teams' autonomy
- Events should be as small as possible, right?
- How to create projections of events for nested object structures?
- What's the difference between a command and an event?
- What if I told you that Relational Databases are in fact Event Stores?
- What texting your Ex has to do with Event-Driven Design?
- How to (not) do the events versioning?
- Why a bank account is not the best example of Event Sourcing?
- Revolution now!
- Relacja z Domain Driven Design Europe 2020 – Event Sourcing
PostgreSql
DevOps
- Filtering EventStoreDB subscriptions by event types
- How to automatically setup pgAdmin with a Docker database
- Setting up NGINX load balancer for .NET WebApi
- Docker Compose Profiles, one the most useful and underrated features
- A simple way to configure integration tests pipeline
- How to create a Docker image for the Marten application
- A few tricks on how to set up related Docker images with docker-compose
- How to build and push Docker image with GitHub actions?
- How to build an optimal Docker image for your application?
- How to create a custom GitHub Action?
.NET
- Let's build the worst Event Sourcing system!
- Why you should batch message processing and how to do it with .NET AsyncEnumerable
- Why I won't use .NET Aspire for now
- Serializacja dla .NET 4.5 oraz Windows Runtime przy pomocy Sharpserializer
- Jak z kilku dllek zrobić jedną, czyli modularność przy pomocy ILMerge
- WrocNet – Team Foundation Server to nie SVN – Materiały
- Multiplatforomowe aplikacje w .NET, Silverlight i Windows Phone Cz.3 – Konfiguracja komunikacji socketami
- Multiplatforomowe aplikacje w .NET, Silverlight i Windows Phone Cz.2 – Wstęp do komunikacji socketami
- Multiplatforomowe aplikacje w .NET, Silverlight i Windows Phone Cz.1 – Współdzielenie klas
- Scrum i Team Foundation Server cz.5 – Continuous Integration
- Scrum i Team Foundation Server cz.5 – Continuous Integration
- Scrum i Team Foundation Server cz.4 – Tworzymy projekt
- Scrum i Team Foundation Server cz.3 – Wystawiamy się na zewnątrz
- Scrum i Team Foundation Server cz.2 – Instalacja TFS
- Ciekawostki - Equals
- Błąd "Cannot update a parent row a foreign key constraint fails" przy pobieraniu rekordów w NHibernate
- Jak odblokować workspace w TFS
- Wielokrotny join we FluentNHibernate
- Inauguracja
Java
Testing
Coding Life
- Keeping our overachieving freak on a leash
- A few notes on migrating storage library
- Are you Marten or Wolverine user? Tell us more!
- We introduced support plans for Marten
- Architecture Weekly became the Substack Bestseller!
- A few words on communication
- A few notes on running open source project after Marten v6 release
- Event stores are key-value databases, and why that matters
- ChatGPT, revolution or not?
- Explicit validation in C# just got simpler!
- Stacking the bricks in the software development process
- Don't be like Ebenezer Scrooge. A few words about workaholism
- Dive a bit deeper, look a bit wider
- It doesn't have to be toxic at work
- Is keeping dates in UTC really the best solution?
- Should you generate the client code from the API?
- Why I'm leaving Event Store and getting ready for the next episode
- Power of ignorance, or how to write simple code
- What onion has to do with Clean Code?
- The risk of ignoring risks
- Twelve things I learned about Java during my last code review
- Small rant about the Software Design
- “Nie interesuję się polityką” jest już nieaktualne
- 15 tips on how to run meetings effectively
- I tested it on production and I'm not ashamed of it
- Should a programmer's creativity be shown in code formatting?
- No, it can never happen!
- Tell, don't ask! Or, how to keep an eye on boiling milk
- What does Mr Bean opening the car have to do with programming?
- What does a construction failure have to do with our authorities?
- 10 notes on the 10th blogging anniversary
- In what language are programmers writing?
- Form a wall! And other concerns about security
- Let's take care of ourselves! Thoughts on compatibility
- Why are senior devs afraid to code?
- What really grind my gears – IIIIIIIIIIIIIIIIF!
- Na temat branży