{"id":13521662,"url":"https://github.com/boyney123/awesome-event-patterns","last_synced_at":"2025-04-12T23:46:51.044Z","repository":{"id":57933964,"uuid":"529222779","full_name":"boyney123/awesome-event-patterns","owner":"boyney123","description":"Personal collection of links, videos and things to help with event architecture event patterns.","archived":false,"fork":false,"pushed_at":"2024-11-08T12:26:46.000Z","size":36,"stargazers_count":379,"open_issues_count":0,"forks_count":17,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-12T23:46:49.121Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boyney123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-08-26T11:01:40.000Z","updated_at":"2025-03-09T22:18:06.000Z","dependencies_parsed_at":"2024-01-13T23:03:41.429Z","dependency_job_id":"38bc602e-d069-4a51-908f-537d2403fe06","html_url":"https://github.com/boyney123/awesome-event-patterns","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fawesome-event-patterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fawesome-event-patterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fawesome-event-patterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fawesome-event-patterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boyney123","download_url":"https://codeload.github.com/boyney123/awesome-event-patterns/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647252,"owners_count":21139081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:00:36.870Z","updated_at":"2025-04-12T23:46:51.023Z","avatar_url":"https://github.com/boyney123.png","language":null,"funding_links":[],"categories":["Similar Lists","Awesome Lists"],"sub_categories":["Diagramming Tools"],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003e🌎 Awesome Event Patterns\u003c/h1\u003e\n\n\u003chr /\u003e\n\n\u003cimg width=\"676\" alt=\"image\" src=\"https://user-images.githubusercontent.com/3268013/186894411-e5c1b1dd-dbed-49db-bac4-dbd7c7ab0964.png\"\u003e\n\n  \u003ch3\u003eCollection of links, videos and things to help with your event-driven architecture event design and patterns.\u003c/h3\u003e\n  \n  \u003ch4\u003eContributions welcome!\u003c/h4\u003e\n\n\u003c/div\u003e\n\n\u003chr /\u003e\n\n\n## Table of Contents\n\n- [Videos](#videos)\n- [Written resources](#written-resources)\n\n## Videos\n\n- [Event First Thinking by David Boyne](https://www.youtube.com/watch?v=GBzr48Mj2JU) - Talk from David Boyne as he goes through the importance of event-design and event first thinking. What event types are there? Why should you care? What are the tradeoffs? Learn in this talk.\n\n- [DDD Europe 2020 Keynote by Udi Dahan](https://www.youtube.com/watch?v=-iuMjjKQnhg\u0026t=2485s) - Udi Dahan gives a great talk about DDD and also goes into event patterns talking about internal and external events within your domains.\n\n- [Events Everywhere! Different Type of Events in a Distributed System](https://www.youtube.com/watch?v=PJPxdl-1ucg) - Great talk with James Hickey and Derek Comartin as they talk about types of events in distributed systems.\n\n- [Message Naming Guidelines](https://www.youtube.com/watch?v=EmtOB2XexJI) - Derek Comartin gives a great video and walkthough on naming guidelines for events.\n\n- [The Many Meanings of Event-Driven Architecture](https://www.youtube.com/watch?v=STKCRSUsyP0) - Timeless classic from Martin Fowler as he goes into event patterns, examples and tradeoffs.\n\n- [CloudEvents And Beyond!](https://www.youtube.com/watch?v=bJTUttZr-Ck) - Doug Davis from Microsoft dives into CloudEvents for us and what is beyond them. This is a great talk to get more understanding of CloudEvents, standards and what the industry is trying to do to help us govern our EDA design and discoverability.\n\n- [Complexity is the Gotcha of event-driven architecture](https://youtu.be/VLUvfIm9wnQ?si=MgXfslSNr7BVsYSA\u0026t=1677) - Talk by Dave Boyne on how complexity creeps on you with event-driven architecture. This timestamp covers event evolution strategy options, and also one thing you might want to consider which is [Postel Law](https://en.wikipedia.org/wiki/Robustness_principle)\n\n\n## Written resources\n\n- [Segreated Event Layers](https://verraes.net/2019/05/patterns-for-decoupling-distsys-segregated-event-layers/) - Mathias Verraes talks about internal events within a domain and using streams to consume them and expose different events.\n- [Patterns for Decoupling in Distributed Systems: Fat Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-fat-event/) - Mathias Verraes goes into what state in an event could look like, the downsides and things to consider.\n- [Patterns for Decoupling in Distributed Systems: Passage of Time Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-passage-of-time-event/) - An interesting event pattern to replace cron jobs and scheduled commands with event to indicate teh passage of time.\n- [Patterns for Decoupling in Distributed Systems: Summary Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-summary-event/) - Rather than emitting a stream of events from a domain why not emit a single summary event at the end? Could you place your events with summary events?\n\n- [The different types of events in event-driven systems](https://blog.frankdejonge.nl/the-different-types-of-events-in-event-driven-systems) - Great read by Frank de Jonge as he goes into three types of events for our EDA applications, the domain event, trigger/signal event and RESTful or \"Fat\" event.\n\n- [Use a message envelope](https://blog.frankdejonge.nl/use-a-message-envelope/) - Another great read by Frank de Jonge as he goes into message envelopes. Talks about what goes into an event, domain boundaries, decorators and much more.\n\n- [CQRS Documents by Greg Young](https://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf#page=25) - Very detailed document around CQRS and Greg goes into domain events, events as storage and much more\n\n- [Thin vs Fat Integration Events](https://codeopinion.com/thin-vs-fat-integration-events/) - Derek Comartin has some great content around event-driven architectures, in this blog post he walks though fat vs thin integration events with videos to support. Check out his [YouTube channel](https://www.youtube.com/channel/UC3RKA4vunFAfrfxiJhPEplw) too!\n\n- [The event notification pattern](https://medium.com/geekculture/the-event-notification-pattern-a62d48519107) - Oskar uit de Bos gives us some great insight and thoughts into event notification pattern, recommended read!\n\n- [The Event-Carried State Transfer pattern](https://itnext.io/the-event-carried-state-transfer-pattern-aae49715bb7f) - Another great read by Oskar uit de Bos, as he gives into the ECST pattern and highlights the good, bad and ugly.\n\n\n- [How Should My Event Be Designed? Some Thoughts on Event-Based Systems](https://www.gokhan-gokalp.com/en/how-should-my-event-be-designed-some-thoughts-on-event-based-systems/) - Gökhan Gökalp gives us his thoughts on Event-Based systems and designs for our events.\n\n- [Event Collaboration And Event Sourcing](https://www.reactivesystems.eu/2022/06/09/event-collaboration-event-sourcing.html) - Lutz Hühnken looks at some event-driven architecture terminology that is often used very liberally, and provides a clear distinction.\n\n- [Introduction to Designing Events and Event Streams](https://developer.confluent.io/learn-kafka/event-design/intro/) - Adam Bellemare gives us a great guide and detailed walkthrough of event streams and event design patterns.\n\n- [EventBridge best practice: why you should wrap events in event envelopes](https://theburningmonk.com/2024/11/eventbridge-best-practice-why-you-should-wrap-events-in-event-envelopes/) - Using AWS and EventBridge? Yan Cui gives us a blog post on why you should wrap events in event envelopes, Sheen Brisials has also given thoughts [about this in the past too, which can help](https://sbrisals.medium.com/the-power-of-amazon-eventbridge-is-in-its-detail-92c07ddcaa40), and if you still want more [Dave Boyne has some thoughts](https://www.boyney.io/blog/2022-02-11-event-payload-patterns).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyney123%2Fawesome-event-patterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboyney123%2Fawesome-event-patterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyney123%2Fawesome-event-patterns/lists"}