With events
to a modern
integration
architecture
How to use events in a modern microservice
world
Allianz in Germany |
Junker
Munich,
Berlin 19, 2022
©
Allianz
2022
• Principal Enterprise Architect at
Allianz in Germany
• Worked in different roles:
developer, product owner, architect
Publications
Lösungsmuster für
Cross-Cutting-Concerns in
Microservices, IT Aktuell, 06/2020
Microservices: Event-getriebene
Integrationsarchitekturen im Einsatz,
heise developer,.04/2022
Agile Unternehmensarchitekturen,
Java Magazin 12/2020
Blog:
https://annegretsarchitecture.blog/
Github: https://github.com/Grinseteddy
LinkedIn:
https://www.linkedin.com/in/dr-annegre
t-junker-141a99a4/
Twitter: Grinseteddy
About myself
2
© Wieland,
2020
INTEGRATION ARCHITECTURE
Event-Driven Architecture
Event-driven microservices allow for real-time
microservices communication, enabling data to be
consumed in the form of events before they’re
even requested.
©
Allianz
2022
3
https://www.confluent.io/resources/event-driven-microservices/?utm_medium=sem&utm
_source=google&utm_campaign=ch.sem_br.nonbrand_tp.prs_tgt.technical-research_mt.
xct_rgn.emea_lng.eng_dv.all_con.event-driven-architecture&utm_term=event%20driven
%20architecture&creative=&device=c&placement=&gclid=CjwKCAjw0a-SBhBkEiwApljU
0v-fXs4y5uLX9L5YNgy94X2gu3-JkbBlXP37BnhhcRGQdWVNYZ62yRoCcqIQAvD_BwE,
5.4.2022
INTEGRATION ARCHITECTURE
4
Event driven
architecture
What is an
event?
An event is something what already
happened. Usually we use “event” as
something which should happen – a
birthday, Christmas, … But technically
something happened e.g. a business
object reached a new status e.g. a task
became “Done”.
©
Allianz
2022
5
What is a
command?
If you use a command, then
something should happen, e.g. a
certain object should be created.
Commands can be transferred as
technical events. But when we
design a certain architecture we need
to differentiate in a clear way.
©
Allianz
2022
6
Microservices Require Events
©
Allianz
2022
EVENTS @ ALLIANZ
7
Self-Contained
Domain Service
Business
Service 1
Business
Service 2
Post
Response
Client
Post
Response
Post
Response
Microservices Require Events
©
Allianz
2022
EVENTS @ ALLIANZ
8
Self-Contain
ed Domain
Service
BO
Repository
Business
Service 1
BO
Repository
Business
Service 2
BO
Repository
Self-Contained
Domain Service
Business
Service 1
Business
Service 2
Post
Response
Client
Post
Response
Post
Response
Server2Server vs. Client2Server
©
Allianz
2022
EVENTS @ ALLIANZ
9
Self-Contained
Domain Service
BO
Repository
Self-Contained
Domain Service
BO
Repository
Self-Contained
Domain Service
BO
Repository
Self-Contained
Domain Service
BO
Repository
Self-Contained
Domain Service
BO
Repository
Self-Contained
Domain Service
BO
Repository
Self-Contained
Domain Service
BO
Repository
Self-Contained
Domain Service
BO
Repository
West – East - Communication
Client
Domain MFE
Domain MFE
Domain MFE
Domain MFE
Domain MFE
Domain MFE
Domain MFE
Domain MFE
North-South-C
ommunication
©
Allianz
2022
10
Design
Principles
• Flexible architecture, which allows partners,
employees, and tied agents, to access the
different applications in different way so that
they can work according to their necessities
• Evolutionary architecture, which supports
step by step approaches and don’t require
big-bangs
• Flexible interface architecture, which allows
a standardized access, which includes legacy
interfaces
• Decoupling of applications via events, to
support an independent and fast
implementation by the according development
teams
• Integration of different backend
applications, to support a domain-driven
development
A Sample
for Events
11
Event-Driven Architecture
©
Allianz
2022
12
The processing of architectural modules (micro services) is
controlled by events.
The scheduling diagram shows the event bus and producer
and consumer. Otherwise than a message broker, an event
broker stores events over a longer period. The event broker
does not send the events actively to the consumer. The
consumer reads the events at the event bus. So the
consumer does not need to be up and running, when an
event occurs.
INTEGRATION ARCHITECTURE
How to get an event
©
Allianz
2022
INTEGRATION ARCHITECTURE
13
Subjective user view on a business
process and visual glossary for definition
of terms
Collecting of business events along the
process, assigning of aggregates (business
objects), roles, technical processes, views
to the events, definition of domains, and
necessary APIs
Formulating of the API as Swagger file
(OpenAPI 3.0 standard) – contract between
partner and Allianz
A Domain Story Telling B Event Storming C
JSON Object/
Swagger File /
Business Description
Procedural
Step
Descrip
tion
Onboarding Process of a Customer
©
Allianz
2022
14
Allianz Customer Model - ACM
Lead Generation
and Management
Relationship
Building
Quotation
Offer and
Follow-up
▪ Generation of Leads and their
qualification
▪ Start of the real sales
opportunity process
▪ Parametrization and calculation
of the quotes
▪ Offer is presented for
signature
▪ Customer is bidden for
feedback
▪ Follow-ups are arranged
Sales Opportunity
▪ Get in contact with the prospect
▪ Collect of the prospect data
▪ Invitation of the prospect to the
advisory meeting
▪ Introduction of the agent and risk
assessment of the prospect
INTEGRATION ARCHITECTURE
15
Quote
Product x
Enter
Parameters
Calculate
Tariff
Assess Risk
Calculate
Tariff
Offer with
Variants
Quotation
Underwriter
Workplace
Task Mngmt
Hand over
Documents
Create
Customer
Documents
Select
Quotes
Feedback
Session
Arrange
next Steps
Contract Creation
Create
Applications
Accept Risk
Create
Contract
Quotes
Document
Services
Advisor
y
Lead
Management
Qualify Lead
Automatically
Create Lead
Qualify Lead
Manually
Customer
Management
Check / Enhance Data
g
Quotation
Parameters
Risk Assessment
Automatically
Quotation Automatically
Offer Creation
Underwriter
Workplace
Manual Risk
Assessment
Manual Quotation
Advisory
Life Situation
Introduce Agency
Risk Assessment
Product Selection
Feedback Session
Task
Management
Contact Prospect
Arrange Appointment
Arrange next Steps
Document
Services
Create Documents
Hand over Documents
Select and Sign
Documents
Policy
Management
Automatic Application
Creation
Automatic Risk
Assessment
Automatic Contract
Creation
Policy Mnmgt
Task Mngmt Task Mngmt
Cust.
Mngmt
Advisor
y
Contact
Prospect
Check &
Enhance
Data
Arrange
Appointm.
Life
Situation
Introduce
Agency
Risk
Assessment
Product
Selection
Lead Mngmt
Create
Lead
Qualify
Lead
Qualify
Lead
New New Legacy New Legacy New Legacy Legacy Legacy
INTEGRATION ARCHITECTURE
Domain Model
©
Allianz
2022
16
Opportunity
Process
Lead Task Customer Advisory Quote Risk Document Contract
Process ID as Foreign
Key
Process ID as Foreign
Key
Process ID as Foreign
Key
Process ID as Foreign
Key
Process ID as Foreign
Key
Process ID as Foreign
Key
Process ID as Foreign
Key
Process ID as Foreign
Key
1 1 1..* 1 1 1 1 1
✔ Flexible architecture
✘ Evolutionary architecture
✘ Flexible interface architecture
✔ Decoupling of application via events
✘ Integration of different backend applications including legacy applications
INTEGRATION ARCHITECTURE
Synchronous Approach
©
Allianz
2022
17
Lead
Management
Customer
Management
Quotation
Advisory
Task
Management
Document
Services
Policy
Management
Sales Portal
Sales Process
Management
INTEGRATION ARCHITECTURE
Layer
Layer
Layer
Domain Model
©
Allianz
2022
18
Opportunity
Process
Lead Task Customer Advisory Quote Risk Document Contract
Lead Event
Task Event
1 1 1..* 1 1 1 1 1
✔ Flexible architecture
✔ Evolutionary architecture
✔ Flexible interface architecture
✔ Decoupling of application via events
✔ Integration of different backend applications including legacy applications
INTEGRATION ARCHITECTURE
Customer
Event
Advisory
Event
Quote Event
Risk Event
Document
Event
Contract
Event
Asynchronous Approach
©
Allianz
2022
INTEGRATION ARCHITECTURE
19
Lead
Management
Customer
Management
Quotation and
Underwriter
Advisory
Task
Management
Document
Services
Policy
Management
Sales Portal
Sales Process
Management
Kafka
Layer
Layer Layer
Layer Layer
©
Allianz
2022
20
INTEGRATION ARCHITECTURE
Events on Kafka as Topics
©
Allianz
2022
21
INTEGRATION ARCHITECTURE
Take
aways
22
Take Away
Decoupled
Systems are
easier to
understand
©
Allianz
2022
23
With event-driven systems, we can decouple
systems and better understand our software.
INTEGRATION ARCHITECTURE
Take Away
Integration of
legacy systems
are simply
easier with an
event-driven
approach.
©
Allianz
2022
24
With event-driven systems, we can decouple
systems and better understand our software.
INTEGRATION ARCHITECTURE
©
Allianz
2022
Vielen Dank!
annegret.junker@allianz.de

With events to a modern integration architecture

  • 1.
    With events to amodern integration architecture How to use events in a modern microservice world Allianz in Germany | Junker Munich, Berlin 19, 2022 © Allianz 2022
  • 2.
    • Principal EnterpriseArchitect at Allianz in Germany • Worked in different roles: developer, product owner, architect Publications Lösungsmuster für Cross-Cutting-Concerns in Microservices, IT Aktuell, 06/2020 Microservices: Event-getriebene Integrationsarchitekturen im Einsatz, heise developer,.04/2022 Agile Unternehmensarchitekturen, Java Magazin 12/2020 Blog: https://annegretsarchitecture.blog/ Github: https://github.com/Grinseteddy LinkedIn: https://www.linkedin.com/in/dr-annegre t-junker-141a99a4/ Twitter: Grinseteddy About myself 2 © Wieland, 2020 INTEGRATION ARCHITECTURE
  • 3.
    Event-Driven Architecture Event-driven microservicesallow for real-time microservices communication, enabling data to be consumed in the form of events before they’re even requested. © Allianz 2022 3 https://www.confluent.io/resources/event-driven-microservices/?utm_medium=sem&utm _source=google&utm_campaign=ch.sem_br.nonbrand_tp.prs_tgt.technical-research_mt. xct_rgn.emea_lng.eng_dv.all_con.event-driven-architecture&utm_term=event%20driven %20architecture&creative=&device=c&placement=&gclid=CjwKCAjw0a-SBhBkEiwApljU 0v-fXs4y5uLX9L5YNgy94X2gu3-JkbBlXP37BnhhcRGQdWVNYZ62yRoCcqIQAvD_BwE, 5.4.2022 INTEGRATION ARCHITECTURE
  • 4.
  • 5.
    What is an event? Anevent is something what already happened. Usually we use “event” as something which should happen – a birthday, Christmas, … But technically something happened e.g. a business object reached a new status e.g. a task became “Done”. © Allianz 2022 5
  • 6.
    What is a command? Ifyou use a command, then something should happen, e.g. a certain object should be created. Commands can be transferred as technical events. But when we design a certain architecture we need to differentiate in a clear way. © Allianz 2022 6
  • 7.
    Microservices Require Events © Allianz 2022 EVENTS@ ALLIANZ 7 Self-Contained Domain Service Business Service 1 Business Service 2 Post Response Client Post Response Post Response
  • 8.
    Microservices Require Events © Allianz 2022 EVENTS@ ALLIANZ 8 Self-Contain ed Domain Service BO Repository Business Service 1 BO Repository Business Service 2 BO Repository Self-Contained Domain Service Business Service 1 Business Service 2 Post Response Client Post Response Post Response
  • 9.
    Server2Server vs. Client2Server © Allianz 2022 EVENTS@ ALLIANZ 9 Self-Contained Domain Service BO Repository Self-Contained Domain Service BO Repository Self-Contained Domain Service BO Repository Self-Contained Domain Service BO Repository Self-Contained Domain Service BO Repository Self-Contained Domain Service BO Repository Self-Contained Domain Service BO Repository Self-Contained Domain Service BO Repository West – East - Communication Client Domain MFE Domain MFE Domain MFE Domain MFE Domain MFE Domain MFE Domain MFE Domain MFE North-South-C ommunication
  • 10.
    © Allianz 2022 10 Design Principles • Flexible architecture,which allows partners, employees, and tied agents, to access the different applications in different way so that they can work according to their necessities • Evolutionary architecture, which supports step by step approaches and don’t require big-bangs • Flexible interface architecture, which allows a standardized access, which includes legacy interfaces • Decoupling of applications via events, to support an independent and fast implementation by the according development teams • Integration of different backend applications, to support a domain-driven development
  • 11.
  • 12.
    Event-Driven Architecture © Allianz 2022 12 The processingof architectural modules (micro services) is controlled by events. The scheduling diagram shows the event bus and producer and consumer. Otherwise than a message broker, an event broker stores events over a longer period. The event broker does not send the events actively to the consumer. The consumer reads the events at the event bus. So the consumer does not need to be up and running, when an event occurs. INTEGRATION ARCHITECTURE
  • 13.
    How to getan event © Allianz 2022 INTEGRATION ARCHITECTURE 13 Subjective user view on a business process and visual glossary for definition of terms Collecting of business events along the process, assigning of aggregates (business objects), roles, technical processes, views to the events, definition of domains, and necessary APIs Formulating of the API as Swagger file (OpenAPI 3.0 standard) – contract between partner and Allianz A Domain Story Telling B Event Storming C JSON Object/ Swagger File / Business Description Procedural Step Descrip tion
  • 14.
    Onboarding Process ofa Customer © Allianz 2022 14 Allianz Customer Model - ACM Lead Generation and Management Relationship Building Quotation Offer and Follow-up ▪ Generation of Leads and their qualification ▪ Start of the real sales opportunity process ▪ Parametrization and calculation of the quotes ▪ Offer is presented for signature ▪ Customer is bidden for feedback ▪ Follow-ups are arranged Sales Opportunity ▪ Get in contact with the prospect ▪ Collect of the prospect data ▪ Invitation of the prospect to the advisory meeting ▪ Introduction of the agent and risk assessment of the prospect INTEGRATION ARCHITECTURE
  • 15.
    15 Quote Product x Enter Parameters Calculate Tariff Assess Risk Calculate Tariff Offerwith Variants Quotation Underwriter Workplace Task Mngmt Hand over Documents Create Customer Documents Select Quotes Feedback Session Arrange next Steps Contract Creation Create Applications Accept Risk Create Contract Quotes Document Services Advisor y Lead Management Qualify Lead Automatically Create Lead Qualify Lead Manually Customer Management Check / Enhance Data g Quotation Parameters Risk Assessment Automatically Quotation Automatically Offer Creation Underwriter Workplace Manual Risk Assessment Manual Quotation Advisory Life Situation Introduce Agency Risk Assessment Product Selection Feedback Session Task Management Contact Prospect Arrange Appointment Arrange next Steps Document Services Create Documents Hand over Documents Select and Sign Documents Policy Management Automatic Application Creation Automatic Risk Assessment Automatic Contract Creation Policy Mnmgt Task Mngmt Task Mngmt Cust. Mngmt Advisor y Contact Prospect Check & Enhance Data Arrange Appointm. Life Situation Introduce Agency Risk Assessment Product Selection Lead Mngmt Create Lead Qualify Lead Qualify Lead New New Legacy New Legacy New Legacy Legacy Legacy INTEGRATION ARCHITECTURE
  • 16.
    Domain Model © Allianz 2022 16 Opportunity Process Lead TaskCustomer Advisory Quote Risk Document Contract Process ID as Foreign Key Process ID as Foreign Key Process ID as Foreign Key Process ID as Foreign Key Process ID as Foreign Key Process ID as Foreign Key Process ID as Foreign Key Process ID as Foreign Key 1 1 1..* 1 1 1 1 1 ✔ Flexible architecture ✘ Evolutionary architecture ✘ Flexible interface architecture ✔ Decoupling of application via events ✘ Integration of different backend applications including legacy applications INTEGRATION ARCHITECTURE
  • 17.
  • 18.
    Domain Model © Allianz 2022 18 Opportunity Process Lead TaskCustomer Advisory Quote Risk Document Contract Lead Event Task Event 1 1 1..* 1 1 1 1 1 ✔ Flexible architecture ✔ Evolutionary architecture ✔ Flexible interface architecture ✔ Decoupling of application via events ✔ Integration of different backend applications including legacy applications INTEGRATION ARCHITECTURE Customer Event Advisory Event Quote Event Risk Event Document Event Contract Event
  • 19.
    Asynchronous Approach © Allianz 2022 INTEGRATION ARCHITECTURE 19 Lead Management Customer Management Quotationand Underwriter Advisory Task Management Document Services Policy Management Sales Portal Sales Process Management Kafka Layer Layer Layer Layer Layer
  • 20.
  • 21.
    Events on Kafkaas Topics © Allianz 2022 21 INTEGRATION ARCHITECTURE
  • 22.
  • 23.
    Take Away Decoupled Systems are easierto understand © Allianz 2022 23 With event-driven systems, we can decouple systems and better understand our software. INTEGRATION ARCHITECTURE
  • 24.
    Take Away Integration of legacysystems are simply easier with an event-driven approach. © Allianz 2022 24 With event-driven systems, we can decouple systems and better understand our software. INTEGRATION ARCHITECTURE
  • 25.