{"@attributes":{"version":"2.0"},"channel":{"title":{},"description":{},"link":"https:\/\/event-driven.io","generator":"GatsbyJS","lastBuildDate":"Fri, 17 Jul 2026 15:23:52 GMT","item":[{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/on-swimming-learning-and-my-journey\/","guid":"https:\/\/event-driven.io\/en\/on-swimming-learning-and-my-journey\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/addition-by-subtraction-in-software-design\/","guid":"https:\/\/event-driven.io\/en\/addition-by-subtraction-in-software-design\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/announcing-strictland-contract-testing\/","guid":"https:\/\/event-driven.io\/en\/announcing-strictland-contract-testing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/you-can-fork-a-package-but-can-you-own-it\/","guid":"https:\/\/event-driven.io\/en\/you-can-fork-a-package-but-can-you-own-it\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how-soon-is-now-in-postgresql\/","guid":"https:\/\/event-driven.io\/en\/how-soon-is-now-in-postgresql\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/on-mashing-up-modelling-techniques\/","guid":"https:\/\/event-driven.io\/en\/on-mashing-up-modelling-techniques\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/should_we_trust_domain_experts\/","guid":"https:\/\/event-driven.io\/en\/should_we_trust_domain_experts\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/vibing_harness_and_ooda_loops\/","guid":"https:\/\/event-driven.io\/en\/vibing_harness_and_ooda_loops\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/yoda_principle_in_command_design\/","guid":"https:\/\/event-driven.io\/en\/yoda_principle_in_command_design\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/passive_aggressive_events\/","guid":"https:\/\/event-driven.io\/en\/passive_aggressive_events\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/intro_to_example_mapping\/","guid":"https:\/\/event-driven.io\/en\/intro_to_example_mapping\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/interactive_rubber_ducking_with_gen_ai\/","guid":"https:\/\/event-driven.io\/en\/interactive_rubber_ducking_with_gen_ai\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/the_end_of_coding_wrong_question\/","guid":"https:\/\/event-driven.io\/en\/the_end_of_coding_wrong_question\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/parse_dont_guess\/","guid":"https:\/\/event-driven.io\/en\/parse_dont_guess\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/cloudflare_d1_transactions_and_tradeoffs\/","guid":"https:\/\/event-driven.io\/en\/cloudflare_d1_transactions_and_tradeoffs\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/rebuilding_read_models_skipping_events\/","guid":"https:\/\/event-driven.io\/en\/rebuilding_read_models_skipping_events\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/rebuilding_event_driven_read_models\/","guid":"https:\/\/event-driven.io\/en\/rebuilding_event_driven_read_models\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/multitenant_and_dynamic_message_handling\/","guid":"https:\/\/event-driven.io\/en\/multitenant_and_dynamic_message_handling\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/checkpointing_message_processing\/","guid":"https:\/\/event-driven.io\/en\/checkpointing_message_processing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/consumers_processors_in_emmett\/","guid":"https:\/\/event-driven.io\/en\/consumers_processors_in_emmett\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/requeuing_roulette_in_messaging\/","guid":"https:\/\/event-driven.io\/en\/requeuing_roulette_in_messaging\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/strict_ordering_in_event_handling\/","guid":"https:\/\/event-driven.io\/en\/strict_ordering_in_event_handling\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/dealing_with_race_conditions_in_eda_using_read_models\/","guid":"https:\/\/event-driven.io\/en\/dealing_with_race_conditions_in_eda_using_read_models\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/mongodb_event_store\/","guid":"https:\/\/event-driven.io\/en\/mongodb_event_store\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/idempotent_command_handling\/","guid":"https:\/\/event-driven.io\/en\/idempotent_command_handling\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/crud_with_pongo\/","guid":"https:\/\/event-driven.io\/en\/crud_with_pongo\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/sql_support_in_pongo\/","guid":"https:\/\/event-driven.io\/en\/sql_support_in_pongo\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/pongo_behind_the_scenes\/","guid":"https:\/\/event-driven.io\/en\/pongo_behind_the_scenes\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/pongo_strongly_typed_client\/","guid":"https:\/\/event-driven.io\/en\/pongo_strongly_typed_client\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/architecture_drivers\/","guid":"https:\/\/event-driven.io\/en\/architecture_drivers\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/projections_and_event_metadata\/","guid":"https:\/\/event-driven.io\/en\/projections_and_event_metadata\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/emmett_projections_testing\/","guid":"https:\/\/event-driven.io\/en\/emmett_projections_testing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/emmett_postgresql_event_store\/","guid":"https:\/\/event-driven.io\/en\/emmett_postgresql_event_store\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/introducting_pongo\/","guid":"https:\/\/event-driven.io\/en\/introducting_pongo\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/filtering_eventstoredb_subscriptions_by_event_types\/","guid":"https:\/\/event-driven.io\/en\/filtering_eventstoredb_subscriptions_by_event_types\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/automatically_connect_pgadmin_to_database\/","guid":"https:\/\/event-driven.io\/en\/automatically_connect_pgadmin_to_database\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/setting_up_nginx_with_aspnet\/","guid":"https:\/\/event-driven.io\/en\/setting_up_nginx_with_aspnet\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/to_do_list_and_passage_of_time_patterns_combined\/","guid":"https:\/\/event-driven.io\/en\/to_do_list_and_passage_of_time_patterns_combined\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/lets_build_the_worst_event_sourcing_system\/","guid":"https:\/\/event-driven.io\/en\/lets_build_the_worst_event_sourcing_system\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/batching_async_enumerable\/","guid":"https:\/\/event-driven.io\/en\/batching_async_enumerable\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/docker_compose_profiles\/","guid":"https:\/\/event-driven.io\/en\/docker_compose_profiles\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_write_left_fold_collector_in_java\/","guid":"https:\/\/event-driven.io\/en\/how_to_write_left_fold_collector_in_java\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/this_is_not_your_uncle_java\/","guid":"https:\/\/event-driven.io\/en\/this_is_not_your_uncle_java\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/custom_test_container_on_esdb_example\/","guid":"https:\/\/event-driven.io\/en\/custom_test_container_on_esdb_example\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/mocking_nodejs_native_test_runner\/","guid":"https:\/\/event-driven.io\/en\/mocking_nodejs_native_test_runner\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/inmemory_message_bus_in_typescript\/","guid":"https:\/\/event-driven.io\/en\/inmemory_message_bus_in_typescript\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/anti-patterns\/","guid":"https:\/\/event-driven.io\/en\/anti-patterns\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/i_am_no_longer_marten_maintainer\/","guid":"https:\/\/event-driven.io\/en\/i_am_no_longer_marten_maintainer\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/testing_event_sourcing_emmett_edition\/","guid":"https:\/\/event-driven.io\/en\/testing_event_sourcing_emmett_edition\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/speed_up_your_event_sourcing_journey_with_workshops\/","guid":"https:\/\/event-driven.io\/en\/speed_up_your_event_sourcing_journey_with_workshops\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_tackle_esmodules_compatibility_issues\/","guid":"https:\/\/event-driven.io\/en\/how_to_tackle_esmodules_compatibility_issues\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/keeping_overachieving_freak_on_a_leash\/","guid":"https:\/\/event-driven.io\/en\/keeping_overachieving_freak_on_a_leash\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/should_you_always_keep_streams_short\/","guid":"https:\/\/event-driven.io\/en\/should_you_always_keep_streams_short\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/closing_the_books_in_practice\/","guid":"https:\/\/event-driven.io\/en\/closing_the_books_in_practice\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/introducing_emmett\/","guid":"https:\/\/event-driven.io\/en\/introducing_emmett\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/production_grade_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/production_grade_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_have_fun_with_typescript_and_workflow\/","guid":"https:\/\/event-driven.io\/en\/how_to_have_fun_with_typescript_and_workflow\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/on_putting_stream_id_in_event_data\/","guid":"https:\/\/event-driven.io\/en\/on_putting_stream_id_in_event_data\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/one_or_more_event_that_is_the_question\/","guid":"https:\/\/event-driven.io\/en\/one_or_more_event_that_is_the_question\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_solve_complicated_problems\/","guid":"https:\/\/event-driven.io\/en\/how_to_solve_complicated_problems\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/dune_and_long_term_goals\/","guid":"https:\/\/event-driven.io\/en\/dune_and_long_term_goals\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/nay_to_aspire\/","guid":"https:\/\/event-driven.io\/en\/nay_to_aspire\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/the_end_is_near_for_crud_data\/","guid":"https:\/\/event-driven.io\/en\/the_end_is_near_for_crud_data\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/notes_on_migrating_storage_library\/","guid":"https:\/\/event-driven.io\/en\/notes_on_migrating_storage_library\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/marten_user_survey\/","guid":"https:\/\/event-driven.io\/en\/marten_user_survey\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/gdpr_in_event_driven_architecture\/","guid":"https:\/\/event-driven.io\/en\/gdpr_in_event_driven_architecture\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/marten_support_plans\/","guid":"https:\/\/event-driven.io\/en\/marten_support_plans\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/gdpr_for_busy_developers\/","guid":"https:\/\/event-driven.io\/en\/gdpr_for_busy_developers\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/clickbait_event\/","guid":"https:\/\/event-driven.io\/en\/clickbait_event\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/women_in_it\/","guid":"https:\/\/event-driven.io\/en\/women_in_it\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/in_the_defence_of_orms\/","guid":"https:\/\/event-driven.io\/en\/in_the_defence_of_orms\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/internal_external_events\/","guid":"https:\/\/event-driven.io\/en\/internal_external_events\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_design_software_architecture_pragmatically\/","guid":"https:\/\/event-driven.io\/en\/how_to_design_software_architecture_pragmatically\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/is_strategy_pattern_an_ultimate_solution_for_low_coupling\/","guid":"https:\/\/event-driven.io\/en\/is_strategy_pattern_an_ultimate_solution_for_low_coupling\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_update_past_data_in_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/how_to_update_past_data_in_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/architecture_weekly_became_substack_bestseller\/","guid":"https:\/\/event-driven.io\/en\/architecture_weekly_became_substack_bestseller\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/my_journey_from_aggregates\/","guid":"https:\/\/event-driven.io\/en\/my_journey_from_aggregates\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/event_transformations_and_loosely_coupling\/","guid":"https:\/\/event-driven.io\/en\/event_transformations_and_loosely_coupling\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/prototype_underestimated_design_skill\/","guid":"https:\/\/event-driven.io\/en\/prototype_underestimated_design_skill\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/behaviour_driven_design_is_not_about_tests\/","guid":"https:\/\/event-driven.io\/en\/behaviour_driven_design_is_not_about_tests\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/online_course_survey\/","guid":"https:\/\/event-driven.io\/en\/online_course_survey\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/configure_ci_for_integration_tests\/","guid":"https:\/\/event-driven.io\/en\/configure_ci_for_integration_tests\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/scaling_out_marten\/","guid":"https:\/\/event-driven.io\/en\/scaling_out_marten\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/xunit_global_settings\/","guid":"https:\/\/event-driven.io\/en\/xunit_global_settings\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/marten_and_docker\/","guid":"https:\/\/event-driven.io\/en\/marten_and_docker\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/vertical_slices_in_practice\/","guid":"https:\/\/event-driven.io\/en\/vertical_slices_in_practice\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/follow_the_money\/","guid":"https:\/\/event-driven.io\/en\/follow_the_money\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/removability_over_maintainability\/","guid":"https:\/\/event-driven.io\/en\/removability_over_maintainability\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/event_sourcing_live_2023\/","guid":"https:\/\/event-driven.io\/en\/event_sourcing_live_2023\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/a_few_words_on_communication\/","guid":"https:\/\/event-driven.io\/en\/a_few_words_on_communication\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/holy_graal_syndrome\/","guid":"https:\/\/event-driven.io\/en\/holy_graal_syndrome\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/i_will_just_add_one_more_field\/","guid":"https:\/\/event-driven.io\/en\/i_will_just_add_one_more_field\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/audit_log_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/audit_log_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/a_few_notes_on_running_open_source_project\/","guid":"https:\/\/event-driven.io\/en\/a_few_notes_on_running_open_source_project\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/strategy_on_migrating_relational_data_to_document_based\/","guid":"https:\/\/event-driven.io\/en\/strategy_on_migrating_relational_data_to_document_based\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/testing_event_driven_projections\/","guid":"https:\/\/event-driven.io\/en\/testing_event_driven_projections\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/publishing_read_model_changes_from_marten\/","guid":"https:\/\/event-driven.io\/en\/publishing_read_model_changes_from_marten\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/postgres_superpowers\/","guid":"https:\/\/event-driven.io\/en\/postgres_superpowers\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/event_stores_are_key_value_stores\/","guid":"https:\/\/event-driven.io\/en\/event_stores_are_key_value_stores\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/chat_gpt_revolution_or_not\/","guid":"https:\/\/event-driven.io\/en\/chat_gpt_revolution_or_not\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/unique_constraint_in_marten_event_store\/","guid":"https:\/\/event-driven.io\/en\/unique_constraint_in_marten_event_store\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/projecting_from_marten_to_elasticsearch\/","guid":"https:\/\/event-driven.io\/en\/projecting_from_marten_to_elasticsearch\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/simple_transactional_command_orchestration\/","guid":"https:\/\/event-driven.io\/en\/simple_transactional_command_orchestration\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/fun_with_json_serialisation\/","guid":"https:\/\/event-driven.io\/en\/fun_with_json_serialisation\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/dont_let_event_driven_architecture_buzzwords_fool_you\/","guid":"https:\/\/event-driven.io\/en\/dont_let_event_driven_architecture_buzzwords_fool_you\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/set_up_opentelemetry_wtih_event_sourcing_and_marten\/","guid":"https:\/\/event-driven.io\/en\/set_up_opentelemetry_wtih_event_sourcing_and_marten\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/projections_in_marten_explained\/","guid":"https:\/\/event-driven.io\/en\/projections_in_marten_explained\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/explicit_validation_in_csharp_just_got_simpler\/","guid":"https:\/\/event-driven.io\/en\/explicit_validation_in_csharp_just_got_simpler\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/stacking_the_bricks\/","guid":"https:\/\/event-driven.io\/en\/stacking_the_bricks\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/projections_and_read_models_in_event_driven_architecture\/","guid":"https:\/\/event-driven.io\/en\/projections_and_read_models_in_event_driven_architecture\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_validate_business_logic\/","guid":"https:\/\/event-driven.io\/en\/how_to_validate_business_logic\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/lets_build_event_store_in_one_hour\/","guid":"https:\/\/event-driven.io\/en\/lets_build_event_store_in_one_hour\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/a_few_words_about_workaholism\/","guid":"https:\/\/event-driven.io\/en\/a_few_words_about_workaholism\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/explicit_events_serialisation_in_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/explicit_events_serialisation_in_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/the_magic_is_that_there_is_no_magic\/","guid":"https:\/\/event-driven.io\/en\/the_magic_is_that_there_is_no_magic\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/share_your_story_on_event_sourcing_live\/","guid":"https:\/\/event-driven.io\/en\/share_your_story_on_event_sourcing_live\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/testing_asynchronous_processes_with_a_little_help_from_dotnet_channels\/","guid":"https:\/\/event-driven.io\/en\/testing_asynchronous_processes_with_a_little_help_from_dotnet_channels\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_map_event_type_by_convention\/","guid":"https:\/\/event-driven.io\/en\/how_to_map_event_type_by_convention\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_get_all_messages_through_postgres_logical_replication\/","guid":"https:\/\/event-driven.io\/en\/how_to_get_all_messages_through_postgres_logical_replication\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_events_can_help_on_making_state_based_approach_efficient\/","guid":"https:\/\/event-driven.io\/en\/how_events_can_help_on_making_state_based_approach_efficient\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/never_lose_data_with_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/never_lose_data_with_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/ordering_in_postgres_outbox\/","guid":"https:\/\/event-driven.io\/en\/ordering_in_postgres_outbox\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/writing_and_testing_business_logic_in_fsharp\/","guid":"https:\/\/event-driven.io\/en\/writing_and_testing_business_logic_in_fsharp\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/push_based_outbox_pattern_with_postgres_logical_replication\/","guid":"https:\/\/event-driven.io\/en\/push_based_outbox_pattern_with_postgres_logical_replication\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/testing_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/testing_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/dive_a_bit_deeper_look_a_bit_wider\/","guid":"https:\/\/event-driven.io\/en\/dive_a_bit_deeper_look_a_bit_wider\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/on_the_importance_of_shaping_the_boundaries_in_team_management\/","guid":"https:\/\/event-driven.io\/en\/on_the_importance_of_shaping_the_boundaries_in_team_management\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/it_doesnt_have_to_be_toxic_at_work\/","guid":"https:\/\/event-driven.io\/en\/it_doesnt_have_to_be_toxic_at_work\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/event_versioning_with_marten\/","guid":"https:\/\/event-driven.io\/en\/event_versioning_with_marten\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/slim_your_entities_with_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/slim_your_entities_with_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_playing_on_guitar_helps_in_being_better_developer\/","guid":"https:\/\/event-driven.io\/en\/how_playing_on_guitar_helps_in_being_better_developer\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/chesterton_fence_and_software_architecture\/","guid":"https:\/\/event-driven.io\/en\/chesterton_fence_and_software_architecture\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/why_are_we_afraid_of_our_decisions\/","guid":"https:\/\/event-driven.io\/en\/why_are_we_afraid_of_our_decisions\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/type_script_node_Js_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/type_script_node_Js_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/union_types_in_csharp\/","guid":"https:\/\/event-driven.io\/en\/union_types_in_csharp\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_effectively_compose_your_business_logic\/","guid":"https:\/\/event-driven.io\/en\/how_to_effectively_compose_your_business_logic\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/event_driven_distributed_processes_by_example\/","guid":"https:\/\/event-driven.io\/en\/event_driven_distributed_processes_by_example\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/is_keeping_utc_dates_best_solution\/","guid":"https:\/\/event-driven.io\/en\/is_keeping_utc_dates_best_solution\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/client_code_generation\/","guid":"https:\/\/event-driven.io\/en\/client_code_generation\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/key-value-stores\/","guid":"https:\/\/event-driven.io\/en\/key-value-stores\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/ogooreck_sneaky_bdd_testing_framework\/","guid":"https:\/\/event-driven.io\/en\/ogooreck_sneaky_bdd_testing_framework\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/should_you_throw_exception_when_rebuilding_state_from_events\/","guid":"https:\/\/event-driven.io\/en\/should_you_throw_exception_when_rebuilding_state_from_events\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/leaving_event_store\/","guid":"https:\/\/event-driven.io\/en\/leaving_event_store\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/power_of_ignorance\/","guid":"https:\/\/event-driven.io\/en\/power_of_ignorance\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/onion_clean_code\/","guid":"https:\/\/event-driven.io\/en\/onion_clean_code\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/tricks_on_how_to_set_up_related_docker_images\/","guid":"https:\/\/event-driven.io\/en\/tricks_on_how_to_set_up_related_docker_images\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/persistent_vs_catch_up_eventstoredb_subscriptions_in_action\/","guid":"https:\/\/event-driven.io\/en\/persistent_vs_catch_up_eventstoredb_subscriptions_in_action\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_build_simple_event_pipeline\/","guid":"https:\/\/event-driven.io\/en\/how_to_build_simple_event_pipeline\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/temporal_tables_and_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/temporal_tables_and_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/agile_vs_introverts\/","guid":"https:\/\/event-driven.io\/en\/agile_vs_introverts\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/the_risk_of_ignoring_risks\/","guid":"https:\/\/event-driven.io\/en\/the_risk_of_ignoring_risks\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/12_things_I_learned_on_last_pull_request_review\/","guid":"https:\/\/event-driven.io\/en\/12_things_I_learned_on_last_pull_request_review\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/small_rant_about_software_design\/","guid":"https:\/\/event-driven.io\/en\/small_rant_about_software_design\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/introduction_to_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/introduction_to_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/uniqueness-in-event-sourcing\/","guid":"https:\/\/event-driven.io\/en\/uniqueness-in-event-sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/russian_invasion_of_ukraine\/","guid":"https:\/\/event-driven.io\/en\/russian_invasion_of_ukraine\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/fifteen_tips_on_how_to_run_meetings_effectively\/","guid":"https:\/\/event-driven.io\/en\/fifteen_tips_on_how_to_run_meetings_effectively\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/immutable_value_objects\/","guid":"https:\/\/event-driven.io\/en\/immutable_value_objects\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_quickly_scale_a_legacy_monolith\/","guid":"https:\/\/event-driven.io\/en\/how_to_quickly_scale_a_legacy_monolith\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/i_tested_on_production\/","guid":"https:\/\/event-driven.io\/en\/i_tested_on_production\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/simple_trick_for_idempotency_handling_in_elastic_search_readm_model\/","guid":"https:\/\/event-driven.io\/en\/simple_trick_for_idempotency_handling_in_elastic_search_readm_model\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/using_strongly_typed_ids_with_marten\/","guid":"https:\/\/event-driven.io\/en\/using_strongly_typed_ids_with_marten\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/should_programmers_productivity_be_shown_in_code_formatting\/","guid":"https:\/\/event-driven.io\/en\/should_programmers_productivity_be_shown_in_code_formatting\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/no_it_can_never_happen\/","guid":"https:\/\/event-driven.io\/en\/no_it_can_never_happen\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/integrating_Marten\/","guid":"https:\/\/event-driven.io\/en\/integrating_Marten\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_do_snapshots_in_Marten\/","guid":"https:\/\/event-driven.io\/en\/how_to_do_snapshots_in_Marten\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/cqrs_is_simpler_than_you_think_with_net6\/","guid":"https:\/\/event-driven.io\/en\/cqrs_is_simpler_than_you_think_with_net6\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/simple_events_versioning_patterns\/","guid":"https:\/\/event-driven.io\/en\/simple_events_versioning_patterns\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/event_streaming_is_not_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/event_streaming_is_not_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_register_all_mediatr_handlers_by_convention\/","guid":"https:\/\/event-driven.io\/en\/how_to_register_all_mediatr_handlers_by_convention\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/long_polling_and_eventual_consistency\/","guid":"https:\/\/event-driven.io\/en\/long_polling_and_eventual_consistency\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/dealing_with_eventual_consistency_and_idempotency_in_mongodb_projections\/","guid":"https:\/\/event-driven.io\/en\/dealing_with_eventual_consistency_and_idempotency_in_mongodb_projections\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_use_etag_header_for_optimistic_concurrency\/","guid":"https:\/\/event-driven.io\/en\/how_to_use_etag_header_for_optimistic_concurrency\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/tell_dont_ask_how_to_keep_an_eye_on_boiling_milk\/","guid":"https:\/\/event-driven.io\/en\/tell_dont_ask_how_to_keep_an_eye_on_boiling_milk\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/what_does_mr_bean_opening_the_car_have_to_do_with_programming\/","guid":"https:\/\/event-driven.io\/en\/what_does_mr_bean_opening_the_car_have_to_do_with_programming\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/what_does_a_construction_failure_have_to_do_with_our_authorities\/","guid":"https:\/\/event-driven.io\/en\/what_does_a_construction_failure_have_to_do_with_our_authorities\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/lets_talk_about_positions_in_event_stores\/","guid":"https:\/\/event-driven.io\/en\/lets_talk_about_positions_in_event_stores\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_do_events_projections_with_entity_framework\/","guid":"https:\/\/event-driven.io\/en\/how_to_do_events_projections_with_entity_framework\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/thoughts_on_tenth_blogging_anniversary\/","guid":"https:\/\/event-driven.io\/en\/thoughts_on_tenth_blogging_anniversary\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/state-obsession\/","guid":"https:\/\/event-driven.io\/en\/state-obsession\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_slice_the_codebase_effectively\/","guid":"https:\/\/event-driven.io\/en\/how_to_slice_the_codebase_effectively\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/will_it_scale_down\/","guid":"https:\/\/event-driven.io\/en\/will_it_scale_down\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/computer_says_no_we_may_have_an_issue_with_ai_soon\/","guid":"https:\/\/event-driven.io\/en\/computer_says_no_we_may_have_an_issue_with_ai_soon\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/property-sourcing\/","guid":"https:\/\/event-driven.io\/en\/property-sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_buid_and_push_docker_image_with_github_actions\/","guid":"https:\/\/event-driven.io\/en\/how_to_buid_and_push_docker_image_with_github_actions\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_buid_an_optimal_docker_image_for_your_application\/","guid":"https:\/\/event-driven.io\/en\/how_to_buid_an_optimal_docker_image_for_your_application\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/notes_about_csharp_records_and_nullable_reference_types\/","guid":"https:\/\/event-driven.io\/en\/notes_about_csharp_records_and_nullable_reference_types\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/in_what_language_are_programmers_writing\/","guid":"https:\/\/event-driven.io\/en\/in_what_language_are_programmers_writing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/form_a_wall\/","guid":"https:\/\/event-driven.io\/en\/form_a_wall\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/lets_take_care_of_ourselves_thoughts_about_comptibility\/","guid":"https:\/\/event-driven.io\/en\/lets_take_care_of_ourselves_thoughts_about_comptibility\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_get_the_current_entity_state_in_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/how_to_get_the_current_entity_state_in_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/when_not_to_use_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/when_not_to_use_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/generic_does_not_mean_simple\/","guid":"https:\/\/event-driven.io\/en\/generic_does_not_mean_simple\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/structural_typing_in_type_script\/","guid":"https:\/\/event-driven.io\/en\/structural_typing_in_type_script\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/when_agile_is_not_enough\/","guid":"https:\/\/event-driven.io\/en\/when_agile_is_not_enough\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_scale_projections_in_the_event_driven_systems\/","guid":"https:\/\/event-driven.io\/en\/how_to_scale_projections_in_the_event_driven_systems\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/why_are_senior_devs_afraid_to_code\/","guid":"https:\/\/event-driven.io\/en\/why_are_senior_devs_afraid_to_code\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_create_a_custom_github_action\/","guid":"https:\/\/event-driven.io\/en\/how_to_create_a_custom_github_action\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/memoization_a_useful_pattern_for_quick_optimisation\/","guid":"https:\/\/event-driven.io\/en\/memoization_a_useful_pattern_for_quick_optimisation\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_using_events_help_in_teams_autonomy\/","guid":"https:\/\/event-driven.io\/en\/how_using_events_help_in_teams_autonomy\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_configure_algolia_for_your_site_search\/","guid":"https:\/\/event-driven.io\/en\/how_to_configure_algolia_for_your_site_search\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/events_should_be_as_small_as_possible\/","guid":"https:\/\/event-driven.io\/en\/events_should_be_as_small_as_possible\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_create_projections_of_events_for_nested_object_structures\/","guid":"https:\/\/event-driven.io\/en\/how_to_create_projections_of_events_for_nested_object_structures\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_start_with_open_source\/","guid":"https:\/\/event-driven.io\/en\/how_to_start_with_open_source\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_successfully_do_documentation_without_maintenance_burden\/","guid":"https:\/\/event-driven.io\/en\/how_to_successfully_do_documentation_without_maintenance_burden\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_money_in_cloud_impacts_architectural_decisions\/","guid":"https:\/\/event-driven.io\/en\/how_money_in_cloud_impacts_architectural_decisions\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/can_command_return_a_value\/","guid":"https:\/\/event-driven.io\/en\/can_command_return_a_value\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/cqrs_facts_and_myths_explained\/","guid":"https:\/\/event-driven.io\/en\/cqrs_facts_and_myths_explained\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/partial_typescript\/","guid":"https:\/\/event-driven.io\/en\/partial_typescript\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_setup_a_test_matrix_in_xunit\/","guid":"https:\/\/event-driven.io\/en\/how_to_setup_a_test_matrix_in_xunit\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/whats_the_difference_between_event_and_command\/","guid":"https:\/\/event-driven.io\/en\/whats_the_difference_between_event_and_command\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/saga_process_manager_distributed_transactions\/","guid":"https:\/\/event-driven.io\/en\/saga_process_manager_distributed_transactions\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/relational_databases_are_event_stores\/","guid":"https:\/\/event-driven.io\/en\/relational_databases_are_event_stores\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/what_texting_ex_has_to_do_with_event_driven_design\/","guid":"https:\/\/event-driven.io\/en\/what_texting_ex_has_to_do_with_event_driven_design\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/sociological_aspects_of_microservices\/","guid":"https:\/\/event-driven.io\/en\/sociological_aspects_of_microservices\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_cut_microservices\/","guid":"https:\/\/event-driven.io\/en\/how_to_cut_microservices\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/bring_me_problems_not_solutions\/","guid":"https:\/\/event-driven.io\/en\/bring_me_problems_not_solutions\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/outbox_inbox_patterns_and_delivery_guarantees_explained\/","guid":"https:\/\/event-driven.io\/en\/outbox_inbox_patterns_and_delivery_guarantees_explained\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/how_to_do_event_versioning\/","guid":"https:\/\/event-driven.io\/en\/how_to_do_event_versioning\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/optimistic_concurrency_for_pessimistic_times\/","guid":"https:\/\/event-driven.io\/en\/optimistic_concurrency_for_pessimistic_times\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/bank_account_event_sourcing\/","guid":"https:\/\/event-driven.io\/en\/bank_account_event_sourcing\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/revolution_now\/","guid":"https:\/\/event-driven.io\/en\/revolution_now\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/architect_manifesto\/","guid":"https:\/\/event-driven.io\/en\/architect_manifesto\/"},{"title":{},"description":{},"link":"https:\/\/event-driven.io\/en\/borys_najlepiej_dryblowal\/","guid":"https:\/\/event-driven.io\/en\/borys_najlepiej_dryblowal\/"}]}}