Title Page Copyright and Credits Hands-On Microservices with C# Packt Upsell Why subscribe? PacktPub.com Contributors About the author About the reviewers Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews Let's Talk Microservices, Messages, and Tools What is a microservice? Service-Oriented Architecture Microservice architecture Pros and cons Pros Cons Case study Messaging concepts Message queues Producer consumer queue Creating common messages Message subscriptions The subscription ID that you pass to subscribe is important Considerations when writing the subscribe callback delegate Using SubscribeAsync Canceling subscriptions Versioning messages How does message versioning work? Message versioning guidance Message publishing Message flow Exchanges Direct exchange Default exchange Topic exchange Fanout exchange Headers exchange Common messages Summary ReflectInsight – Microservice Logging Redefined Router Log Viewer Live Viewer Message navigation Message properties Watches Bookmarks Call Stack Advanced Search Quick Search Advanced Search Time zone formatting Auto Save/Purge Auto Save Auto Purge Configuration Editor Overview XML configuration Dynamic configuration Configuration Editor Summary Exercises Creating a Base Microservice and Interface Classes versus interfaces Creating our base project Creating a base interface Creating our base microservice class Variables Base microservice constructor Implementing our interface Publishing a memory update message Minimal microservice Summary Designing a Memory Management Microservice Creating our microservice Our code Reclaiming memory Dynamically creating an exchange Dynamically creating a queue Publishing a message Summary Exercises Designing a Deployment Monitor Microservice Deployment issues Installation Our messages Deployment start message Deployment stop message Our program Subscribing to messages Processing messages Publishing health status messages Summary Exercises Designing a Scheduling Microservice Installation Installing Quartz.NET What is Quartz.NET? Runtime environments Job scheduling Job execution Job persistence Clustering Listeners and plugins Installing Quartz.NET server as a service Our program OnStart Scheduling multiple jobs Running our microservice Summary Exercises Designing an Email Microservice Installation Our program OnStart Subscribing to messages Processing messages Finding DNS servers Subscribing to email requests Summary Exercises Designing a File Monitoring Microservice Overview of FileSystemWatcher Internal buffer Building your microservice – part one Making sure our message queue and exchange are created Running the recovery filewatcher Building your microservice – part two Our message Building our main program Notes on events Summary Exercises Creating a Machine Learning Microservice Installation Our program OnStart Processing a machine learning request Creating a layer Creating a network Traversing the forward path through the network Training the network Getting results Summary Creating a Quantitative Financial Microservice Installation Our messages CDS-request message Bonds request message Subscribing to messages Publishing our request message Publishing our CDS response Calculating a CDS Getting bond information Processing a bond request Processing a bond response Summary Exercises Trello Microservice – Board Status Updating Installation Creating boards, lists, and cards Summary Exercises Microservice Manager – The Nexus Installation Our code Leader election Subscribing to all messages Processing bond response messages Processing deployment messages Processing CDS messages Processing memory messages Processing health status messages Processing machine learning messages Processing filesystem messages Summary Exercises Creating a Blockchain Bitcoin Microservice Blockchain Bitcoin Digital signatures The circle of encryption Installation Our main program Leader election Creating our digital wallet Your public address How do we spend money? Our code Processing BitcoinSpendReceipt Summary Exercises Adding Speech and Search to Your Microservice Text-to-Speech Installation Our program Our messages Subscribing to messages Processing speech request messages Processing Wikipedia search messages Using Text-to-Speech Summary Best Practices Microservices Messaging Scheduling jobs Recommended reading