# [Event Driven](https://www.redhat.com/en/topics/integration/what-is-an-event-mesh)
###### tags: `System Architechture` `DDD` `Strategic design`
### [Difference between Event mesh and service mesh](https://solace.com/what-is-an-event-mesh/)
- Service mesh could only connect events from cloud env while event mesh connect not only for cloud but also legacy app.
- To solve problem: dissemination of massive amounts of data across a highly distributed infrastructure.
### [Event-driven architecture(EDA)](https://www.redhat.com/en/topics/integration/what-is-an-event-mesh)
- communication via "events."
- EDA's "asynchronous" event-based communication is better suited to this type of data transfer than more traditional "synchronous" communication.
- "asynchronous" communication is event-driven, allowing multiple applications to communicate simultaneously and rapidly,
- EDA requires no runtime coupling between event producer and consumer, which makes EDA optimal for modern, distributed applications.
- [***3 Keywords***](https://solace.com/blog/becoming-an-event-driven-enterprise/)
- Event-enable existing sys
- Q: middleware products
- A: using **msg bridges** to send info to event mesh
- Q: mainframe app
- A: using **bridges into MQ**, polling app for changes once nd publishing them to the event mesh
- A: using **JDBC connectors** or **CDC software** to gather changes from app databases,
- Q: exiting App & ESB
- A: using **Solace JCA, JMS, or REST**, some can directly connect to event mesh.
- Q: sync restful request/reply
- A: using **PubSub+ in microgateway** proxy mode to publish it into event mesh
- Modernize platform
- modernizing your application environment so you can take advantage of more dynamic cloud infrastructure, public, private or often both, to build more agile microservices
- Alert & inform

### [Implementation](https://solace.com/blog/steps-to-implement-event-driven-architecture/)
- Event-driven architecture is way of building enterprise IT systems that lets loosely coupled applications and microservices produce and consume events.
-
#### Steps
- Culture Awareness & Intent
- Which app/micro services consume/produce which events
- [ ] publish/subscribe event broker
- [x] distributed netowkr of brokers( event mesh)
- What are the benefits of EDA ?
- Agility
- Responsiveness
- Better customer experience
- Build support, strategize, and ensure that the next project – the next transformation, the next microservice, the next API – will be done the event-driven way.
- To-do
- What are jewel of projects
- ACP/DCP request
- user info
- Use cases can be candidates, look at them through the event-driven lens,
- articulate a go-to approach to realize the benefits.
- Real Time Candidates
- Candidates: API
- pain removal:
- brittleness, performance, new functionality
- medium-to-high business impact
- Event Streaming Foundation
- Pilot Selection and Event Catelog
- Event Driven Design
- Implemnet quick win
### Event driven with hexagonal (How)
#### [Clean Architechre starts with triangle concept](https://valerii-udodov.com/posts/event-sourcing/clean-event-driven-architecture/)
### Event Storage Model
- Pub/sub model
- Event streaming model
- Event stream processing
- Data streeaming platform
- Apache Kafka
- Simple event processing
- Event immediately trigger an action
- Complex event processing
### AWS sqs
- Standard queues offer
- maximum throughput
- best-effort ordering
- at-least-once delivery.
- SQS FIFO queues are designed to guarantee that messages are processed exactly once, in the exact order that they are sent.
### Further questions
- **Extension**: How to extend the flow of events form the system to new cloud-based app?
- **Integration**: How to connect the rest eco sys into the event-driven world?
- **Readibility & Scalability**: How do app developers discover these events from sys of record, iot devices, filed locations to build new app?
- **Orginization**: How to govern and track whcih app have access to what info?
- **Accessibility**:How to evolve event definition over time and communicate changes or assess the impact of changes?
#### EDA messaging
Apache Kafka is a popular choice for EDA messaging, particularly with cloud-native developers. Event mesh should also support other messaging options including Knative Eventing, Cloud Events, HTTP and AMQP, just to name a few.
### Reading list
- [ ] [Why You Need More than a Schema Registry to Become an Event-Driven Enterprise](https://solace.com/blog/more-than-a-schema-registry/)
- [ ] [What is Event-Driven Architecture?](https://solace.com/what-is-event-driven-architecture/)
- [ ] [Expertised in event-driven](https://solace.com/blog/becoming-an-event-driven-enterprise/)
- [ ] [What Does It Mean to be Event Driven? Open Your Mind and Unlock New Business Value!](https://solace.com/blog/what-is-event-driven-unlock-business-value/)