SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
#JoyThroughGratitude #FutureReady
MICROSERVICES
ARCHITECTURE
Modernize | Digitize | Empower
Agenda
Microservices
Overview
01
API Gateway
02
Interprocess
Communication
03
Event Driven
Architecture
04
Microservices
Deployment
05
✓ Simple scaling model for operations
just run multiple copies behind a load balancer
✓ Simple mental model for developers
one unit of access for coding building and deploying
Huge and
intimidating
code base for
developers
Development
tools get
overburdened
Scaling is
limited
Deployment
frequency is
limited
A single missing “;” brought down the Netflix
website for many hours (~2008)
The term "micro"
refers to the sizing: a
microservice must be
manageable by a single
development team
Functional system
decomposition means
vertical slicing(in
contrast to horizontal
slicing through layers)
Independent
deployability implies
no shared state and
inter process
communication
Many smaller (fine grained), clearly scoped services
Single Responsibility Principle
Domain Driven Development
Bounded Context
Independently Managed & Clear ownership for each service
Typically need/adopt the “DevOps” model
"Loosely coupled service oriented
architecture with bounded contexts
• Small and focused on doing
one thing well.
• “Autonomous”
- Adrian Cockcroft (Netflix)
“……services are independently deployable and
scalable, each service also provides a firm module
boundary, even allowing for different services to be
written in different programming languages. They
can also be managed by different teams"
- Martin fowler (Thoughtworks)
• The API Gateway is responsible for
request routing, composition, and
protocol translation. It provides each
of the application’s clients with a
custom API.
• The API Gateway can also mask
failures in the backend services by
returning cached or default data.
• It encapsulates the internal structure
of the application.
• The API Gateway provides each kind
of client with a specific API. This
reduces the number of round trips
between the client and application.
Cross-cutting concerns
Too many round trips
Coupling
Security issues
▪ Performance and Scalability
▪ Reactive Programming Model
▪ Service Invocation
▪ Service Discovery
- Client-Side Discovery
- Service Side Discovery
▪ Handling Partial Failure
Circuit Breaker Pattern
Communication Between Services
Request/response
A client makes a request to a service and waits for
a response. The client expects the response to
arrive in a timely fashion. In a thread-based
application, the thread that makes the request
might even block while waiting.
Publish/subscribe
1-1 Interaction 1-n Interaction
A client publishes a request message, and then waits a
certain amount of time for responses from interested
services. ex: Rabbit MQ
Publish/async responses (Message Queueing)
A client publishes a notification message, which
is consumed by zero or more interested services.
ex: Apache Kafka, AWS SNS
Notification (a.k.a. a one-way request)
A client sends a request to a service but no reply
is expected or sent.
Request/async response
A client sends a request to a service, which replies
asynchronously. The client does not block while
waiting and is designed with the assumption that
the response might not arrive for a while.
• A microservice publishes an event when something notable happens, such as when it updates a business
entity.
• Other microservices subscribe to those events. When a microservice receives an event it can update its own
business entities, which might lead to more events being published.
Polyglot
Persistence
Event Sourcing
Event Stream
Command Query
Responsibility
Separation (CQRS).
• It publishes streams of
events to a broker using
messaging technologies
such as Apache Kafka and
Confluent.
• Consumers of event-
streaming platforms can
access and consume events
from each stream.
• Its a technique that is
utilized while transitioning
from a monolith to a
microservice.
• The application state is
determined by a series of
events in the Event Sourcing
pattern.
• Like queues, events are
presented in the order they
were received.
• Its a strategy used to store
data in heterogenous
databases.
• Its another paradigm
that separates the read
and write models.
• insert or update
operations are usually
handled by a different
service. For querying
data, you would
additionally have a
separate service.
Use Case 1:
Use Case 2:
OptiSol is all about "Joy with Gratitude"-the quality of being thankful
Thank you

Más contenido relacionado

Similar a OptiSol Microservices Architecture - Tech Meetup

Introducing IBM Message Hub: Cloud-scale messaging based on Apache Kafka
Introducing IBM Message Hub: Cloud-scale messaging based on Apache KafkaIntroducing IBM Message Hub: Cloud-scale messaging based on Apache Kafka
Introducing IBM Message Hub: Cloud-scale messaging based on Apache KafkaAndrew Schofield
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptx
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptxQConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptx
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptxVimalKumar143058
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxPINGXIONG3
 
Arsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoArsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoDicodingEvent
 
Come costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSCome costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSAmazon Web Services
 
Net core microservice development made easy with azure dev spaces
Net core microservice development made easy with azure dev spacesNet core microservice development made easy with azure dev spaces
Net core microservice development made easy with azure dev spacesAlon Fliess
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 
Meetup6 microservices for the IoT
Meetup6 microservices for the IoTMeetup6 microservices for the IoT
Meetup6 microservices for the IoTFrancesco Rago
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
Private Apps in the Public Cloud - DevConTLV March 2016
Private Apps in the Public Cloud - DevConTLV March 2016Private Apps in the Public Cloud - DevConTLV March 2016
Private Apps in the Public Cloud - DevConTLV March 2016Issac Goldstand
 
Architecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt MicroservicesArchitecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt MicroservicesAmazon Web Services
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 Mark Hinkle
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architectureTouraj Ebrahimi
 
Associated IoT Technologies.pptx
Associated IoT Technologies.pptxAssociated IoT Technologies.pptx
Associated IoT Technologies.pptxtaruian
 

Similar a OptiSol Microservices Architecture - Tech Meetup (20)

AWS Serverless Introduction
AWS Serverless IntroductionAWS Serverless Introduction
AWS Serverless Introduction
 
Introducing IBM Message Hub: Cloud-scale messaging based on Apache Kafka
Introducing IBM Message Hub: Cloud-scale messaging based on Apache KafkaIntroducing IBM Message Hub: Cloud-scale messaging based on Apache Kafka
Introducing IBM Message Hub: Cloud-scale messaging based on Apache Kafka
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices.pptx
Microservices.pptxMicroservices.pptx
Microservices.pptx
 
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptx
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptxQConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptx
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptx
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
Arsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry SusantoArsitektur Aplikasi Modern - Faisal Henry Susanto
Arsitektur Aplikasi Modern - Faisal Henry Susanto
 
Come costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSCome costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWS
 
Micro Services
Micro ServicesMicro Services
Micro Services
 
Net core microservice development made easy with azure dev spaces
Net core microservice development made easy with azure dev spacesNet core microservice development made easy with azure dev spaces
Net core microservice development made easy with azure dev spaces
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
Meetup6 microservices for the IoT
Meetup6 microservices for the IoTMeetup6 microservices for the IoT
Meetup6 microservices for the IoT
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Private Apps in the Public Cloud - DevConTLV March 2016
Private Apps in the Public Cloud - DevConTLV March 2016Private Apps in the Public Cloud - DevConTLV March 2016
Private Apps in the Public Cloud - DevConTLV March 2016
 
Architecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt MicroservicesArchitecture: When, how, and if to Adopt Microservices
Architecture: When, how, and if to Adopt Microservices
 
Spring cloud
Spring cloudSpring cloud
Spring cloud
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Associated IoT Technologies.pptx
Associated IoT Technologies.pptxAssociated IoT Technologies.pptx
Associated IoT Technologies.pptx
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
 

Último

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

OptiSol Microservices Architecture - Tech Meetup

  • 3. ✓ Simple scaling model for operations just run multiple copies behind a load balancer ✓ Simple mental model for developers one unit of access for coding building and deploying
  • 4. Huge and intimidating code base for developers Development tools get overburdened Scaling is limited Deployment frequency is limited
  • 5. A single missing “;” brought down the Netflix website for many hours (~2008)
  • 6. The term "micro" refers to the sizing: a microservice must be manageable by a single development team Functional system decomposition means vertical slicing(in contrast to horizontal slicing through layers) Independent deployability implies no shared state and inter process communication
  • 7.
  • 8.
  • 9. Many smaller (fine grained), clearly scoped services Single Responsibility Principle Domain Driven Development Bounded Context Independently Managed & Clear ownership for each service Typically need/adopt the “DevOps” model
  • 10.
  • 11. "Loosely coupled service oriented architecture with bounded contexts • Small and focused on doing one thing well. • “Autonomous” - Adrian Cockcroft (Netflix) “……services are independently deployable and scalable, each service also provides a firm module boundary, even allowing for different services to be written in different programming languages. They can also be managed by different teams" - Martin fowler (Thoughtworks)
  • 12. • The API Gateway is responsible for request routing, composition, and protocol translation. It provides each of the application’s clients with a custom API. • The API Gateway can also mask failures in the backend services by returning cached or default data. • It encapsulates the internal structure of the application. • The API Gateway provides each kind of client with a specific API. This reduces the number of round trips between the client and application.
  • 13. Cross-cutting concerns Too many round trips Coupling Security issues
  • 14. ▪ Performance and Scalability ▪ Reactive Programming Model ▪ Service Invocation ▪ Service Discovery - Client-Side Discovery - Service Side Discovery ▪ Handling Partial Failure Circuit Breaker Pattern
  • 15. Communication Between Services Request/response A client makes a request to a service and waits for a response. The client expects the response to arrive in a timely fashion. In a thread-based application, the thread that makes the request might even block while waiting. Publish/subscribe 1-1 Interaction 1-n Interaction A client publishes a request message, and then waits a certain amount of time for responses from interested services. ex: Rabbit MQ Publish/async responses (Message Queueing) A client publishes a notification message, which is consumed by zero or more interested services. ex: Apache Kafka, AWS SNS Notification (a.k.a. a one-way request) A client sends a request to a service but no reply is expected or sent. Request/async response A client sends a request to a service, which replies asynchronously. The client does not block while waiting and is designed with the assumption that the response might not arrive for a while.
  • 16.
  • 17. • A microservice publishes an event when something notable happens, such as when it updates a business entity. • Other microservices subscribe to those events. When a microservice receives an event it can update its own business entities, which might lead to more events being published.
  • 18. Polyglot Persistence Event Sourcing Event Stream Command Query Responsibility Separation (CQRS). • It publishes streams of events to a broker using messaging technologies such as Apache Kafka and Confluent. • Consumers of event- streaming platforms can access and consume events from each stream. • Its a technique that is utilized while transitioning from a monolith to a microservice. • The application state is determined by a series of events in the Event Sourcing pattern. • Like queues, events are presented in the order they were received. • Its a strategy used to store data in heterogenous databases. • Its another paradigm that separates the read and write models. • insert or update operations are usually handled by a different service. For querying data, you would additionally have a separate service.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 26. OptiSol is all about "Joy with Gratitude"-the quality of being thankful Thank you