SlideShare a Scribd company logo
1 of 79
Тема доклада
Тема доклада
Тема доклада
KYIV 2019
Irina Scurtu
Forget about HTTP
.NET CONFERENCE #1 IN UKRAINE
Irina Scurtu
 Romania Based
 Software Architect @Endava
 Organizer of DotNetIasi user group
 I teach .Net
@irina_scurtu
Agenda
 Monoliths& Microservices
 HTTP calls – sync & async
 RPC
 Messaging
 Queues
 Message Brokers
 Actor Model
Easy life
The Monolith
MONOLITH
 Self-contained
 Single codebase
 Single deploy unit
 Easy life for developers
 Dependencies are in your code
 Single technology stack
MONOLITH
 All or nothing deploys
 Downtimes
 Long build times
 ~ 0 continuous delivery
 Hard to test
Scaling the MONOLITH
Scale up
2
1 5
3
monolith syndrome?
MICROSERVICE
 it’s that thing that is not a monolith
 With it’s own database
 Easy to deploy
 Standalone
 Easy to maintain
Is it?
MICROSERVICES?
 Introduces complexity
 Cascading effects in case of failure
 Need to monitor them closely
2
1 5
3
Independent
units
2
1 5
3
Dou you
know?
150 Amazoncalls
APIs to Build a Page
5 billions
/day
Netflix
 services about 5
billions API
calls/day
 97.7 % are internal
Sync Calls
HTTP
HTTP CALLS
API
Response
API
HTTP CALLS
API API
HTTP CALLS
NFRs
Availablity
Troughput
Reliability
Timeouts
Latency
Retries
Resilience
“It’s perfectly
fine to use sync
HTTP Calls”
 Timeouts
 Availability
 Going back to
coupling?
 You can loose
requests
 Retries?
async Calls
HTTP
“It’s perfectly fine to use async HTTP Calls”
You’ll have exactly the same issues as with sync
calls
Distribute load?!
You can serve more request
You can serve the requests faster
HTTP General Notes
 Sync by nature
 Make a TCP connection for each request
 No retry out of the box
 No delivery guarantees
 Location transparency
 Good for public facing APIs
 Familiar
 Easy to debug
Challenges
Service Discovery
Retry policies
Timeouts
Routing
Tracing
gRPC
gRPC
 No-code references
 Contract based
 Uses HTTP/2 => faster
 Efficient ProtoBuf serialization => smaller payload
 Available in many languages
 Code generation
syntax = "proto3";
option csharp_namespace = "MyFirstGrpc";
package Fibonacci;
// The service definition.
service Fibo {
rpc ComputeFibonacci(RequestedNumber) returns (FibonacciResult){}
}
//the request message format
message RequestedNumber {
int32 number = 1;
}
//the response message format
message FibonacciResult {
int32 result = 1;
}
syntax = "proto3";
option csharp_namespace = "MyFirstGrpc";
package Fibonacci;
// The service definition.
service Fibo {
rpc ComputeFibonacci(RequestedNumber) returns (FibonacciResult){}
}
//the request message format
message RequestedNumber {
int32 number = 1;
}
//the response message format
message FibonacciResult {
int32 result = 1;
}
syntax = "proto3";
option csharp_namespace = "MyFirstGrpc";
package Fibonacci;
// The service definition.
service Fibo {
rpc ComputeFibonacci(RequestedNumber) returns (FibonacciResult){}
}
//the request message format
message RequestedNumber {
int32 number = 1;
}
//the response message format
message FibonacciResult {
int32 result = 1;
}
syntax = "proto3";
option csharp_namespace = "MyFirstGrpc";
package Fibonacci;
// The service definition.
service Fibo {
rpc ComputeFibonacci(RequestedNumber) returns (FibonacciResult){}
}
//the request message format
message RequestedNumber {
int32 number = 1;
}
//the response message format
message FibonacciResult {
int32 result = 1;
}
syntax = "proto3";
option csharp_namespace = "MyFirstGrpc";
package Fibonacci;
// The service definition.
service Fibo {
rpc ComputeFibonacci(RequestedNumber) returns (FibonacciResult){}
}
//the request message format
message RequestedNumber {
int32 number = 1;
}
//the response message format
message FibonacciResult {
int32 result = 1;
}
syntax = "proto3";
option csharp_namespace = "MyFirstGrpc";
package Fibonacci;
// The service definition.
service Fibo {
rpc ComputeFibonacci(RequestedNumber) returns (FibonacciResult){}
}
//the request message format
message RequestedNumber {
int32 number = 1;
}
//the response message format
message FibonacciResult {
int32 result = 1;
}
Trough a message
broker
RPC
RPC
 A kind of API call
Done through a message broker
 Ties systems together but preserves their
encapsulations
Makes an external system look ‘local’
No direct code dependencies
RPC
S H
Queues
Request
RPC
S
Queues
Response
Request
H
Gain vs Loss
You don’t lose the requests
You can add more handler instances
You can ‘apparently’ spread the load
You can process more requests
 Need to match the request
to the response
 Is still sync
Messaging Body
Header
Messaging
Gives you loosely coupled integration
Doesn’t require both systems to be up
Messages ca be transformed in transit - Enrichers
Messaging systems trade consistency for availability
You don’t lose messages
Involves a Producer and a consumer
Messaging
ASYNC Message Processing
S H
Queues
RequestRequest
Queue
S
Queues
Response
Request
RequestRequest
H
Queue
Response
Response
With a DB
S
Queues
Response
Request
RequestRequest
H
Storage
With a DB
s
Queues
Response
Request
RequestRequest
H
Storage
Gains
• Is a reaction to the problems
of distributed systems
• Process more requests
• Process request faster
• Don’t lose requests
 You move the potential
issues to another
subsystem (DB in our case)
 Eventual consistency
remains a problem
Loss
Solutions to eventual problems
 Connection is scarce
 Batch process the message
 Use a semaphore to process them in batches
WHY USE a messaging
system with MSA ?
Agility
Faster development
No integration process
You depend only on a response
Teams have ownership and full understanding of the codebase
You can switch technologies if needed
Scalability
Scale up
Scale out
Increased Throughput
38 267 vs 3500
ElasticityScale down to
reduce costs
A lot of ‘ilities’
Reliability
Flexibility
Distribution
Increased Throughput
Scalability
Elasticity
Performance
Agility
Fault Tolerance
Tools/Frameworks/Systems
What options do I have?
plenty
Many more
Data Types
Queues
Actor Model
Message Brokers
Queues
Useful for point to point communication
Messages are ordered and timestamped
Pull-mode
Actor model
Born from Reactive Programming
Actors are processes that encapsulate behavior
Actors are more than message consumers
Can delegate and create new actors
Can supervise children
At most once delivery
Reactive Manifesto
Message Driven
ResilientElastic
Responsive
Async message
Loose coupling
Location transparency
Scalable
React to workload
changes
Failures are self contained
Recovery
Isolation
Message Brokers
Message Brokers
One process sends a message to a named queue/topic
One or many consumers
Handles connections and disconnections
Dead-letter queue concept
Message Guarantees ( 3 types)
Different Protocols
Guarantees
RabbitMQ
Message Brokers
Lightweight
Queues are FIFO
Supports AMQP protocol
Easy to use, fast
At-least-once delivery
AMQP General Notes
 Async by nature
 Guaranteed message delivery
 At-least once, exactly once, at most once delivery
 No DNS resolve
 Programmatic routing
 Retries out-of-the box
 Ack, Nack out of the box
 Has the “channel” concept
AMQP General Notes
 Has the “channel”
concept
Topic Exchange
References
Distributed systems are
all about tradeoffs
Http is not
the only
option!
PLEASE DON’T FOLLOW
ME
@irina_scurtu
Q&A

More Related Content

Similar to .NET Fest 2019. Irina Scurtu. Forget about HTTP

Interoperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) OverviewInteroperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) Overview
Jorgen Thelin
 
Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)
kyroskoh
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
JAXLondon2014
 
Overview of Windows Vista Devices and Windows Communication Foundation (WCF)
Overview of Windows Vista Devices and Windows Communication Foundation (WCF)Overview of Windows Vista Devices and Windows Communication Foundation (WCF)
Overview of Windows Vista Devices and Windows Communication Foundation (WCF)
Jorgen Thelin
 

Similar to .NET Fest 2019. Irina Scurtu. Forget about HTTP (20)

Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
 
Interoperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) OverviewInteroperability and Windows Communication Foundation (WCF) Overview
Interoperability and Windows Communication Foundation (WCF) Overview
 
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
 
Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)
 
CocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIsCocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIs
 
A Pattern Language for Microservices (@futurestack)
A Pattern Language for Microservices (@futurestack)A Pattern Language for Microservices (@futurestack)
A Pattern Language for Microservices (@futurestack)
 
Confluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with ReplyConfluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with Reply
 
Asynchronous Python with Twisted
Asynchronous Python with TwistedAsynchronous Python with Twisted
Asynchronous Python with Twisted
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
 
Middleware
MiddlewareMiddleware
Middleware
 
Middleware1
Middleware1Middleware1
Middleware1
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
A pattern language for microservices (melbourne)
A pattern language for microservices (melbourne)A pattern language for microservices (melbourne)
A pattern language for microservices (melbourne)
 
A pattern language for microservices - Chris Richardson
A pattern language for microservices - Chris RichardsonA pattern language for microservices - Chris Richardson
A pattern language for microservices - Chris Richardson
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And Patterns
 
Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"
 
Overview of Windows Vista Devices and Windows Communication Foundation (WCF)
Overview of Windows Vista Devices and Windows Communication Foundation (WCF)Overview of Windows Vista Devices and Windows Communication Foundation (WCF)
Overview of Windows Vista Devices and Windows Communication Foundation (WCF)
 

More from NETFest

More from NETFest (20)

.NET Fest 2019. Николай Балакин. Микрооптимизации в мире .NET
.NET Fest 2019. Николай Балакин. Микрооптимизации в мире .NET.NET Fest 2019. Николай Балакин. Микрооптимизации в мире .NET
.NET Fest 2019. Николай Балакин. Микрооптимизации в мире .NET
 
.NET Fest 2019. Сергей Калинец. Efficient Microservice Communication with .NE...
.NET Fest 2019. Сергей Калинец. Efficient Microservice Communication with .NE....NET Fest 2019. Сергей Калинец. Efficient Microservice Communication with .NE...
.NET Fest 2019. Сергей Калинец. Efficient Microservice Communication with .NE...
 
.NET Fest 2019. Оля Гавриш. .NET Core 3.0 и будущее .NET
.NET Fest 2019. Оля Гавриш. .NET Core 3.0 и будущее .NET.NET Fest 2019. Оля Гавриш. .NET Core 3.0 и будущее .NET
.NET Fest 2019. Оля Гавриш. .NET Core 3.0 и будущее .NET
 
.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов
.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов
.NET Fest 2019. Оля Гавриш. Машинное обучение для .NET программистов
 
.NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem...
.NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem....NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem...
.NET Fest 2019. Roberto Freato. Provisioning Azure PaaS fluently with Managem...
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
 
.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex
.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex
.NET Fest 2019. Сергій Бута. Feature Toggles: Dynamic Configuration at Wirex
 
.NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A...
.NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A....NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A...
.NET Fest 2019. Michael Staib. Hot Chocolate: GraphQL Schema Stitching with A...
 
.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture
.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture
.NET Fest 2019. Андрей Литвинов. Async lifetime tests with xUnit and AutoFixture
 
.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests
.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests
.NET Fest 2019. Анатолий Колесник. Love, Death & F# Tests
 
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос....NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
.NET Fest 2019. Алексей Голуб. Монадные парсер-комбинаторы в C# (простой спос...
 
.NET Fest 2019. Roberto Freato. Azure App Service deep dive
.NET Fest 2019. Roberto Freato. Azure App Service deep dive.NET Fest 2019. Roberto Freato. Azure App Service deep dive
.NET Fest 2019. Roberto Freato. Azure App Service deep dive
 
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
 
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com....NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
.NET Fest 2019. Александр Демчук. How to measure relationships within the Com...
 
.NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real...
.NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real....NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real...
.NET Fest 2019. Anna Melashkina та Philipp Bauknecht. Dragons in a Mixed Real...
 
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
.NET Fest 2019. Alex Thissen. Architecting .NET solutions in a Docker ecosystem
 
.NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ...
.NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ....NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ...
.NET Fest 2019. Stas Lebedenko. Practical serverless use cases in Azure with ...
 
.NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali...
.NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali....NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali...
.NET Fest 2019. Сергей Медведев. How serverless makes Integration TDD a reali...
 
.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET
.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET
.NET Fest 2019. Сергей Корж. Natural Language Processing in .NET
 
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur....NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
 

Recently uploaded

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Recently uploaded (20)

HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 

.NET Fest 2019. Irina Scurtu. Forget about HTTP