SlideShare une entreprise Scribd logo
1  sur  84
Télécharger pour lire hors ligne
PATTERNS OF RESILIENCE
Jisung, Ahn
▸ Original: https://www.slideshare.net/ufried/patterns-of-
resilience
RESILIENCE?
?
RE•SIL•IENCE (R ˈZ L YƏNS) ALSO RE•SIL′IEN•CY, N.
1. THE POWER OR ABILITY TO RETURN TO THE ORIGINAL FORM,
POSITION, ETC., AFTER BEING BENT, COMPRESSED, OR STRETCHED;
ELASTICITY.
2. ABILITY TO RECOVER READILY FROM ILLNESS, DEPRESSION,
ADVERSITY, OR THE LIKE; BUOYANCY.
Webster's College Dictionary


?
(PRODUCTION)
.
( )

( )

( )
= /
( + )
(Availability)

(MTTF): Mean Time To Failure

(MTTR): Mean Time To Recovery
?
= /
( + )
= /
( + )
(Availability)

(MTTF): Mean Time To Failure

(MTTR): Mean Time To Recovery
RELIABILITY
, , ,
ISO/IEC 25010:2011(en)
?
( )
8
▸ 1. 

2. 

3. 

4. 

5. 

6. . 

7. 

8.
.
Leslie Lamport
, 



“ ”
▸ Cloud-based systems
▸ Microservices
▸ Zero Downtime
▸ IoT & Mobile
▸ Social



->


Resilience
= /
( + )
Resilience(IT)
▸
▸ ( )
▸ ( )

Isolation
Isolation( )
▸
▸ , .
▸
▸
Isolation
Bulkheads
Bulkheads( )
▸
▸ “ (failure units)”,” (Unit of mitigation)”
▸ ( )
▸
Isolation
Bulkheads
Complete 

Parameter

Checking
Complete parameter checking
▸ ,
▸ ( )
▸ (Postel’s law)
▸
,
.
,
Postel’s law
Complete parameter checking
// How to design request parameters
// Worst variant – requires tons of checks
String buySomething(Map<String, String> params);
// Still a bad variant – still a lot of checks required
String buySomething(String customerId, String productId, int count);
// Much better – only null checks required
PurchaseStatus buySomething(Customer buyer, Article product, Quantity count);
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Loose coupling
▸
▸
▸
▸
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Asynchronous

Communication
▸
▸
▸ /
▸
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Asynchronous

Communication
Location

Transparency
Location Transparency
▸
▸
▸ -
▸ dispather mapper
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Asynchronous

Communication
Event-Driven
Location

Transparency
Event-driven
▸
▸ ,
▸ ,
▸ -
Request/response

(Sender depends on receiver)
Event-driver

without broker

(Receiver depends on sender)
Event-driver

with broker

(Sender and receiver decoupled)
SENDER
RECEIVER
Lookup
Request/

Response
// from sender

receiver = lookup()

// from receiver

result =

receiver.call()
SENDER
RECEIVER
subscribe
Send
// from sender

queue.send(msg)

// from receiver

queue =
sender.subscribe()

msg = queue.receive()
Receive
SENDER
RECEIVER
subscribe
Send
// from sender

broker = lookup()

broker.send(msg)

// from receiver

queue =
broker.subscribe()

msg = queue.receive()
BROKER
Receive
Lookup
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Stateless
▸
▸
▸
▸ (Resilience)/ (scalability)
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Relaxed Temporal Constraints
▸
▸
▸
▸ ACID . BASE !
▸ ACID

Atomic 

Consistent 

Isolated 

Durable 

▸ Base

Basically Available

Available 

Soft-State

(refresh, modify) Data
expire 

Eventual Consistency

Data
CAP
Eric Brewer2
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Idempotency( )
▸
▸ ( ) .
▸
▸ (Resilience)/ (scalability)
Note: Idempotency .
▸ Idempotency
.
Unique request token(schematic)
// client / sender part

// create request with unique request token(e.g, via UUID)

token = createUniqueToken()

request = createRequest(token, payload)

// send request until successful

while(!successful) {

send(request, timeout) // Do not forget failure handling

}

// server / receiver part

// receive request

token = receive()

// Process request only if token is unknown

if (! lookup(request.token)) { // need to implement in a CAS way to be safe

process(request)

store(token) // Store token for lookup(can be garbage collected eventually)

}
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Self-Containment( )
▸
▸
▸
▸ ( )
…..
Spring Boot
…
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Latency ControlSelf-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Latency control
▸ (Isolation)
▸
▸
▸
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Shed Load
Latency Control
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Timeouts
▸
▸
▸
▸
Timeouts with standard library means
// Wrap blocking action in a Callable Callable<MyActionResult> myAction = <My Blocking Action>

// Use a simple ExecutorService to run the action in its own thread

ExecutorService executor = Executors.newSingleThreadExecutor();

Future<MyActionResult> future = executor.submit(myAction);

MyActionResult result = null;

// Use Future.get() method to limit time to wait for completion

try {

result = future.get(TIMEOUT, TIMEUNIT);

// Action completed in a timely manner – process results

} catch (TimeoutException e) {

// Handle timeout (e.g., schedule retry, escalate, alternate action, ...)

} catch (...) {

// Handle other exceptions that can be thrown by Future.get()

} finally {

// Make sure the callable is stopped even in case of a timeout

future.cancel(true);

}
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Latency Control
Circuit Breaker
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Circuit Breaker
▸
▸
▸ offline
▸ Fail Fast
// Hystrix “Hello world”

public class HelloCommand extends HystrixCommand<String> {

private static final String COMMAND_GROUP = ”Hello”; // Not important here

private final String name;

// Request parameters are passed in as constructor parameters

public HelloCommand(String name) {

super(HystrixCommandGroupKey.Factory.asKey(COMMAND_GROUP));

this.name = name;

}

@Override

protected String run() throws Exception {

// Usually here would be the resource call that needs to be guarded

return "Hello, " + name;

}

}

// Usage of a Hystrix command – synchronous variant

@Test

public void shouldGreetWorld() {

String result = new HelloCommand("World").execute();

assertEquals("Hello, World", result);

}
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Latency Control
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Fail Fast
▸ “ , ”
▸
▸
▸
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Latency Control
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Fan out & quickest reply
▸ worker .
▸ ,
▸
▸ “ ”
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Latency Control
Bounded Queue
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Bounede Queues
▸
▸
▸ (Pushback)
▸ Fail Fast
Bounded Queue Example
// Executor service runs with up to 6 worker threads simultaneously

// When thread pool is exhausted, up to 4 tasks will be queued -

// additional tasks are rejected triggering the PushbackHandler

final int POOL_SIZE = 6;

final int QUEUE_SIZE = 4;

// Set up a thread pool executor with a bounded queue and a PushbackHandler

ExecutorService executor =

new ThreadPoolExecutor(POOL_SIZE, POOL_SIZE, // Core pool size, max pool size

0, TimeUnit.SECONDS, // Timeout for unused threads

new ArrayBlockingQueue(QUEUE_SIZE),

new PushbackHandler);

// PushbackHandler - implements the desired pushback behavior

public class PushbackHandler implements RejectedExecutionHandler {

@Override

public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {

// Implement your pushback behavior here

}

}
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Shed Load
Latency Control
Bounded Queue
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Shed Load( )
▸ (Upstream isolation pattern)
▸
▸
▸
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Shed Load
Supervision
Latency Control
Bounded Queue
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Supervision
▸
▸
▸
▸
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Shed Load
Supervision
Latency Control
Bounded Queue
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Monitor
Monitor
▸
▸
▸ -
▸ -
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Shed Load
Supervision
Latency Control
Bounded Queue
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Error Handler
Monitor
Error Handler
▸
▸
▸ ( )
▸
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Shed Load
Supervision
Latency Control
Bounded Queue
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Error Handler
Monitor
Escalation
Escalation
▸
▸ (Escalation)
▸
▸
S
S
S S S
W W W W W W W W
Escalation implementation

using Worker/Supervisor
Isolation
Bulkheads
Loose Coupling
Complete 

Parameter

Checking
Shed Load
Supervision
Latency Control
Bounded Queue
Fan out &

quickest reply
Circuit Breaker
Fail Fast
Timeout
Self-Containment
Idempotency
Relaxed

Temporal

Constraints
Asynchronous

Communication
Event-Driven
Location

Transparency
Stateless
Error Handler
Monitor
Escalation
….
▸ (Recovery) & (Mitigation)
▸ Supervision
▸
▸ (Anti-Fragility)
▸ &
▸ …
▸ “ ”
▸
▸
▸
▸
▸ Isolation
.
!

Contenu connexe

Tendances

Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Ryosuke Uchitate
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 Spring
Kiyotaka Oku
 

Tendances (19)

Tech Talks_25.04.15_Session 3_Tibor Sulyan_Distributed coordination with zook...
Tech Talks_25.04.15_Session 3_Tibor Sulyan_Distributed coordination with zook...Tech Talks_25.04.15_Session 3_Tibor Sulyan_Distributed coordination with zook...
Tech Talks_25.04.15_Session 3_Tibor Sulyan_Distributed coordination with zook...
 
Spocktacular testing
Spocktacular testingSpocktacular testing
Spocktacular testing
 
Top5 scalabilityissues
Top5 scalabilityissuesTop5 scalabilityissues
Top5 scalabilityissues
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
 
Tomcat连接池配置方法V2.1
Tomcat连接池配置方法V2.1Tomcat连接池配置方法V2.1
Tomcat连接池配置方法V2.1
 
Server startup
Server startupServer startup
Server startup
 
Tests unitaires mock_kesako_20130516
Tests unitaires mock_kesako_20130516Tests unitaires mock_kesako_20130516
Tests unitaires mock_kesako_20130516
 
Distributed systems at ok.ru #rigadevday
Distributed systems at ok.ru #rigadevdayDistributed systems at ok.ru #rigadevday
Distributed systems at ok.ru #rigadevday
 
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 Spring
 
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code ExampleMaven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
 
Tugas 2
Tugas 2Tugas 2
Tugas 2
 
Java设置环境变量
Java设置环境变量Java设置环境变量
Java设置环境变量
 
CQS
CQSCQS
CQS
 
Java util concurrent
Java util concurrentJava util concurrent
Java util concurrent
 
Cqs v2
Cqs v2Cqs v2
Cqs v2
 
Monitoring and troubleshooting a glideinWMS-based HTCondor pool
Monitoring and troubleshooting a glideinWMS-based HTCondor poolMonitoring and troubleshooting a glideinWMS-based HTCondor pool
Monitoring and troubleshooting a glideinWMS-based HTCondor pool
 
使ってみよう!JDK Flight Recorder
使ってみよう!JDK Flight Recorder使ってみよう!JDK Flight Recorder
使ってみよう!JDK Flight Recorder
 
ログ出力を改めて考える - JDK Flight Recorder の活用
ログ出力を改めて考える - JDK Flight Recorder の活用ログ出力を改めて考える - JDK Flight Recorder の活用
ログ出力を改めて考える - JDK Flight Recorder の活用
 

Similaire à Resilence patterns kr

Fault tolerance made easy
Fault tolerance made easyFault tolerance made easy
Fault tolerance made easy
Uwe Friedrichsen
 
OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!
Tobias Schneck
 
Top5 scalabilityissues withappendix
Top5 scalabilityissues withappendixTop5 scalabilityissues withappendix
Top5 scalabilityissues withappendix
ColdFusionConference
 
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Paul King
 

Similaire à Resilence patterns kr (20)

Resilence patternsreloaded kr
Resilence patternsreloaded krResilence patternsreloaded kr
Resilence patternsreloaded kr
 
Resilience with Hystrix
Resilience with HystrixResilience with Hystrix
Resilience with Hystrix
 
Fault tolerance made easy
Fault tolerance made easyFault tolerance made easy
Fault tolerance made easy
 
OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!
 
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
 
Building resilient applications
Building resilient applicationsBuilding resilient applications
Building resilient applications
 
Why resilience - A primer at varying flight altitudes
Why resilience - A primer at varying flight altitudesWhy resilience - A primer at varying flight altitudes
Why resilience - A primer at varying flight altitudes
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitter
 
Apache ZooKeeper
Apache ZooKeeperApache ZooKeeper
Apache ZooKeeper
 
Curator intro
Curator introCurator intro
Curator intro
 
Reactive Quarkus – A Java Mutiny! | DevNation Tech Talk
Reactive Quarkus – A Java Mutiny! | DevNation Tech TalkReactive Quarkus – A Java Mutiny! | DevNation Tech Talk
Reactive Quarkus – A Java Mutiny! | DevNation Tech Talk
 
Stress test your backend with Gatling
Stress test your backend with GatlingStress test your backend with Gatling
Stress test your backend with Gatling
 
Some testing - Everything you should know about testing to go with @pedro_g_s...
Some testing - Everything you should know about testing to go with @pedro_g_s...Some testing - Everything you should know about testing to go with @pedro_g_s...
Some testing - Everything you should know about testing to go with @pedro_g_s...
 
Top5 scalabilityissues withappendix
Top5 scalabilityissues withappendixTop5 scalabilityissues withappendix
Top5 scalabilityissues withappendix
 
无锁编程
无锁编程无锁编程
无锁编程
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownparts
 
Cassandra Summit EU 2014 - Testing Cassandra Applications
Cassandra Summit EU 2014 - Testing Cassandra ApplicationsCassandra Summit EU 2014 - Testing Cassandra Applications
Cassandra Summit EU 2014 - Testing Cassandra Applications
 
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
 
Testing basics for developers
Testing basics for developersTesting basics for developers
Testing basics for developers
 
Patterns of resilience
Patterns of resiliencePatterns of resilience
Patterns of resilience
 

Dernier

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Dernier (20)

WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

Resilence patterns kr