Devoxx Greece 2024 - Unifying API and event driven architectures by Woody Rousseau

Unify API and event-driven architectures for more scalable and maintainable systems. Learn how to combine strengths of both approaches, overcome complexity and latency, and improve error handling and monitoring.

Key takeaways
  • API and Event Driven Architectures are not mutually exclusive, but complementary. Both approaches have their own strengths and weaknesses, and a unified approach can provide a better overall solution.
  • APIs are often used for synchronous communication, while events are used for asynchronous communication. APIs are well-suited for real-time interactions, while events are better suited for decoupling systems and handling complex workflows.
  • Event-driven architectures can introduce complexity and latency. Events can create a middleman between producers and consumers, introducing latency and potential for errors.
  • API-first and event-always approaches can provide a balanced solution. By focusing on APIs for synchronous communication and events for asynchronous communication, developers can create a more scalable and maintainable architecture.
  • Domain-driven design and event storming can help to identify and design event-driven systems. These approaches can help developers to identify the key events and processes in a system, and to design a more effective event-driven architecture.
  • APIs and events can be used together to create a more robust and scalable system. By using APIs for synchronous communication and events for asynchronous communication, developers can create a system that is more robust and scalable.
  • Consistency and standardization are key to a successful event-driven architecture. Consistent naming conventions, data formats, and communication protocols can help to simplify the development and maintenance of event-driven systems.
  • Error handling and monitoring are critical components of an event-driven architecture. Developers must ensure that their event-driven systems are designed with error handling and monitoring in mind, to ensure that errors are detected and resolved quickly.
  • Investing in tech assets and training can help to improve the adoption of event-driven architectures. Developers must be trained and equipped with the necessary tools and technologies to effectively design and implement event-driven systems.
  • API and event-driven architectures can be used to create a more scalable and maintainable system. By using APIs for synchronous communication and events for asynchronous communication, developers can create a system that is more scalable and maintainable.