The document introduces an evolutionary event-driven architecture called the Enterprise Digital Transformation Platform (EDTP) for accelerating digital transformation. The EDTP is a 4-tier platform based on cloud, containers, microservices, events and streaming. It addresses challenges of data integration and decoupling through architectural concepts like event-driven design, microservices and templates. The EDTP provides full-stack deployment automation and microservice templating to accelerate development. Use cases from Toyota Financial Services are presented to demonstrate the EDTP's capabilities.
1. Evolutionary Event-Driven
Architecture for Accelerated
Digital Transformation
Slobodan Sipcic, Ph.D.
Enterprise IT Architect
Presented at:
Monthly IBM GBS Architecture Forum
July 8, 2021
1
July 8, 2021
2. The presentation introduces an innovative approach for accelerated development and deployment
of a wide range of agile Services and Data Digital Transformation Solutions that scale. The platform
is based on modern 4-tier evolutionary event-driven architectural style including cloud, containers,
microservices, events, streaming, and sync & async processing. The approach is instantiated as a
reusable asset “Enterprise Digital Transformation Platform”. The platform is featured at Think 2019
and The Open Group Agile Architecture meetings and created considerably interest. It is currently
deployed in TFS and TMC Japan and in the process of evaluation by TMNA, Salesforce, and
Albertsons.
July 8, 2021 2
Abstract
3. Table of Contents
• What are We Trying to Solve?
Digital Transformation Domain: Business Drivers and Challenges
• What Architectural Concepts Can Help Us Address Challenges
• Putting Architectural Concepts to Work: How Platform Computing and EDTP
Address Challenges
• EDTP Digital Transformation Accelerators:
o Full Stack Deployment Automation
o Microservice Templating
• Toyota Financial Services Use Cases
• Request a Demo
3
July 8, 2021
4. What are We Trying to Solve?
Digital Transformation Domain:
Business Drivers & Challenge
4
July 8, 2021
5. Drivers for Digital Transformation
Businesses may take on Digital
Transformation for several reasons. But by
far, the most likely reason is that they
must: It is a survival issue.
A business’ ability to adapt quickly to
disruptions from incumbents and startups,
to time to market pressures, and to rapidly
changing customer expectations has
become critical.
It is all about evolutions and changes.
5
July 8, 2021
6. Digital Transformation Challenges
Data and integration challenges
hindering businesses’ ability to
transform include:
1. Data Quality and Consistency,
2. Coupling on Data & BL levels,
3. Point-to-Point Integration n-
square problem,
4. Point-to-Point with imbedded
transformations,
5. Multiple runtime environments.
6
July 8, 2021
7. Digital Transformation Platform’s North Star Attributes
• Decoupling
• Adaptability:
Service Layer
Data Layer
Integration Layer
• Agility
• Elasticity
• Experimenting
• Fast-failing
7
July 8, 2021
9. • Evolutionary Architecture:
An evolutionary architecture designs for incremental change in an architecture as a first principle. Evolutionary
architectures are appealing because change has historically been difficult to anticipate and expensive to retrofit. If
evolutionary change is built into the architecture, change becomes easier and cheaper, allowing changes to
development practices, release practices, and overall agility.
Changes: Business Changes; Technology Changes
Dimensions: Auditability; Performance; Security; Data; Legality; Scalability; Elasticity
• Event Driven Architecture:
An event-driven architecture is a software architecture and model for application design. With an event-driven system,
the capture, communication, processing, and persistence of events are the core structure of the solution — events-first
principle. The event-first approach facilitates Decoupling, Encapsulation, and Evolutionary Change.
Event: An event can be defined as "a significant change in state".
Note: Evolutionary architecture is a natural benefit from event-first thinking and event-driven architectures.
• Design Patterns:
Design patterns establish repeatable solutions to common design problems which helps keep code maintainable,
extensible, and loosely coupled. Some patterns discussed in this presentation include Synchronous Pattern,
Asynchronous Pattern, Asynchronous Pattern with Retries, Event Notification, Event-Carried State Transfer, Event-
Sourcing, CQRS, Saga, and many more.
9
July 8, 2021
Defining Relevant Architectural Concepts
10. • Domain-Driven Design:
DDD is about designing software based on models of the underlying domain. It is hard to build a single unified model of
large complex domains. DDD deals with large models by providing decomposition categories including:
Domains: A domain defines a problem area for which the software is going to provide solutions.
Subdomains: DDD recommends splitting a domain up into smaller parts called subdomains for easier identification.
Bounded Context: A bounded context delimits the applicability of a specific model.
• Microservices Architecture:
A microservice architectural style is an approach to developing a single application as a suite of small services, each
running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. One of the
biggest challenges of microservices design is to define the boundaries of individual services.
The principles of DDD can assist microservice design through decomposition of a domain to subdomains and bounded
contexts and using that information to define and design microservices. Typically, each microservice operates in its own
bounded context.
• Four-Tier Engagement Platform:
A four-tier engagement platform is engineered for performance, device-tailored experiences, and for integration of both
internal services and external services and APIs. The platform is broken into device, delivery, aggregation, and services
layers.
10
July 8, 2021
Defining Relevant Architectural Concepts
12. Enterprise Digital Transformation Platform
To address the challenges, we developed EDTP
for accelerated development and deployment of
a wide range of agile Services and Data Digital
Transformation Solutions (DTS) that scale.
EDTP is a Four-Tier Engagement Platform
designed based on:
• Evolutionary Architecture principles,
• Event Driven Architecture principles,
• Streaming Architectures,
• Use of design patterns,
• Microservices architectural style,
• Cloud & Containers.
12
July 8, 2021
13. EDTP Layered Architecture
EDTP is built on top of core technologies
including Docker Kubernetes and OpenShift:
• Docker provides container services,
• Kubernetes run and scale containers for
production,
• OpenShift provides developers with the
features to manage their DevOps,
• EDTP builds on top of it to deliver full-stack
automation and accelerators for delivery
of DTS.
13
July 8, 2021
14. EDTP Layered Distributed Architecture
EDTP consists of small decoupled services that work
together to deliver its functionality. It runs on top of
OpenShift and Kubernetes clusters. The services are broken
down by function:
• EDTP Technology Components and Services are deployed in
Containers – which are virtual boundaries of compute and
memory resources assigned to the components. Docker images
are used to spin up containers.
• OpenShift leverages the Kubernetes concept of a POD, which is
one or more Containers deployed together on one Worker Node.
• A Kubernetes Service serves as an internal load balancer. It
exposes an application running on a set of PODs as a network
service.
• An OpenShift Route exposes a Service by giving it an externally
reachable hostname.
• Master Nodes manage the OpenShift cluster.
14
July 8, 2021
15. EDTP Reference Architecture
15
July 8, 2021
If we consider EDTP as a Four-Tier
Engagement Platform, then conceptually
we can identify three types of
interoperating services:
• Core Services – Infrastructure (AWS), Docker,
Kubernetes, and OpenShift.
• Technology Components – Access & Delivery
(NiFi), API Gateway (Ambassador), Storage
(S3 & MongoDB), Streaming (Kafka, Kafka
Streams, Schema Registry), Observability
(Elastic), and Service Mesh (Istio).
• EDTP Streaming Data Processing Services –
Ingress, Harmonization, Materialization, and
Connector.
• EDTP API Aggregation and Processing services.
EDTP is architected as an Event Processing Digital Platform around which all Businesses’ current and
future data sources, consumers, services, and processes interact. It consists of EDTP Services Layer and
EDTP Data Layer.
16. EDTP Realization - Digital Transformation
Accelerators:
- Full Stack Deployment Automation
- Microservice Templating
16
July 8, 2021
18. EDTP Microservices Templating
A Template Developer :
• Defines Generic Schema that might include
information such as Tenant ID, Version No.,
Correlation ID, and section for API Data.
• For a given Pattern designs and develops
Service Class that incorporates implementation
of all cross-cutting concerns such as
externalized configuration, logging, health
checks, metrics, service registration and
discovery, circuit breakers, distributed tracing.
• Create Service Constructor API which Service
Developers can use to instantiate service
instances of that class.
18
July 8, 2021
EDTP’s patent pending approach for accelerated development of Microservices is based on Object-Oriented
Programming paradigm where a Microservice is an instance of a Microservice Class. Each Microservice Class has a
Constructor that is exposed as an API that can be invoked to create an instance of Microservice from the Class.
Templating idea is especially powerful when combined with an idea of using Patterns to define Service Classes.
19. EDTP Microservices Instantiation from Template
1. Developer invokes the Constructor
API,
2. Constructor clones the Service Class
Code,
3. Constructor deploys the Service
Instance into Kubernetes runtime
environment.
4. The result of the Constructor’s process
is deployed Service Instance exposed
via Rest API with generic Service Class
business logic.
5. Finally, the developer implements
business logic specific to his Use Case.
19
July 8, 2021
The process of instantiating a Service Instance from the Service Class includes the following steps:
20. EDTP Provides Templates for many Patterns
20
Synchronous Pattern Asynchronous Pattern Asynchronous Pattern with Retries
The slide depicts Synchronous Pattern, Asynchronous Pattern, and Asynchronous Pattern with Retries.
Other patterns include Event Notification, Event-Carried State Transfer, Event-Sourcing, CQRS, and
many more.
July 8, 2021
21. EDTP novel approach offers manifold of benefits including:
• It offers structured process for development and governance of
Microservices,
• It ensures that the cross-cutting concerns are implemented in standardized
and consistent ways,
• It ensures that the security related cross-cutting concerns are implemented in
the standardized and consistent way,
• Developers can quickly and easily get started with developing Microservices,
• Developers can focus on development of Use Case implementation logic
rather than on setting up Service and related cross-cutting concerns.
21
EDTP Microservices Templating Benefits
July 8, 2021
23. 10/29/20 23
• NiFI Ingress Service (Async):
1) Receives Batch Files,
2) Persists the Raw Data in S3,
3) Stream the file records to Kafka
Harmonization Topic.
• Harmonization Service (Async):
4) Picks the records of the Topic. Harmonizes
data to a single point of truth and persist
the harmonized data in MongoDB
Collections,
5) Streams data to Kafka Materialization
Topic.
• Materialization Service (Async):
6) Picks the data of the Topic. Transforms the
data in a format appropriate for
consumption by the consumers. Persists
the data in MongoDB.
Delivery Service (Async with Retries):
7) Delivers materialized data to the
consumers.
1
2
3
4
5
6
7
Batch Processing
EDTP is a stream processing platform capable of efficient processing of real-time and batch data.
24. 24
1 2
3
4
5
6
EDTP Enabled Mainframe Modernization
EDTP deploys and integrates technologies that foster TFS’s digital transformation. This use case illustrates bringing
Mainframe into the TFS API ecosystem.
Due Date Change Use Case:
1) CSR Requests DDC (Sync).
2) Controller Service receives the request, puts
it on Kafka Topic (guaranteed delivery) and
sends the ACK response,
3) DDC Service picks up the request for
processing,
4) DDC Service is an aggregate of six APIs
exposed by z/OS Connect,
5) DDC Services invokes the APIs and executes
relevant business logic,
6) Once done, DDC Services invokes Responder
Service to deliver the response to CEP.
July 8, 2021
25. Request A Demo
The following EDTP unique features can be demonstrate to Clients:
1. Automated Deployment of EDTP in Client’s AWS environment including:
a. Infrastructure,
b. Technology Components,
c. Services.
2. EDTP Data and Integration Capabilities including:
a. Ingestion of streaming and batch data,
b. Harmonization and Materialization of the streaming data,
c. Integration based on the EDTP Connector Services – such integration with Snowflake,
d. Service templating for accelerated deployment of enterprise services.
3. EDTP Support for Pattern Based Service Development including:
a. Event Notification,
b. Event-Carried State Transfer,
c. Event-Sourcing,
d. CQRS,
e. Asynchronous Processing,
f. Service Retries Processing,
g. and many more…
25
July 8, 2021