CINXE.COM
Node.js: Microservices Online Class | LinkedIn Learning, formerly Lynda.com
<!DOCTYPE html> <html lang="en"> <head> <meta name="pageKey" content="d_learning_course_guest"> <!----><!----> <meta name="locale" content="en_US"> <meta id="config" data-app-version="2.0.2217" data-call-tree-id="AAYn2bkLjJKMB9qs/TUaXA==" data-multiproduct-name="learning-guest-frontend" data-service-name="learning-guest-frontend" data-browser-id="21812c3f-99ed-428d-8408-c9c24bb693f0" data-enable-page-view-heartbeat-tracking data-page-instance="urn:li:page:learning_course_guest;P4j05pLJSMibs4l2JPNqfg==" data-disable-jsbeacon-pagekey-suffix="false" data-member-id="0"> <link rel="canonical" href="https://www.linkedin.com/learning/node-js-microservices-22685072"> <!----><!----> <!----> <!----> <!----> <link rel="manifest" href="/homepage-guest/manifest.json" crossorigin="use-credentials"> <!----> <script> function getDfd() {let yFn,nFn;const p=new Promise(function(y, n){yFn=y;nFn=n;});p.resolve=yFn;p.reject=nFn;return p;} window.lazyloader = getDfd(); window.tracking = getDfd(); window.impressionTracking = getDfd(); window.ingraphTracking = getDfd(); window.appDetection = getDfd(); window.pemTracking = getDfd(); </script> <!----> <link rel="icon" href="https://static.licdn.com/aero-v1/sc/h/444zstxv7s91nepfm5et6ofge"> <title>Node.js: Microservices Online Class | LinkedIn Learning, formerly Lynda.com</title> <meta name="robots" content="noarchive, max-image-preview:large"> <meta name="description" content="Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith."> <meta property="og:site_name" content="LinkedIn"> <meta name="twitter:site" content="@LI_Learning"> <meta name="twitter:card" content="summary"> <meta name="litmsProfileName" content="learning-guest-frontend"> <meta property="og:title" content="Node.js: Microservices Online Class | LinkedIn Learning, formerly Lynda.com"> <meta name="twitter:title" content="Node.js: Microservices Online Class | LinkedIn Learning, formerly Lynda.com"> <meta property="og:description" content="Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith."> <meta name="twitter:description" content="Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith."> <meta property="og:image" content="https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4"> <meta name="twitter:image" content="https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4"> <!----> <meta property="og:url" content="https://www.linkedin.com/learning/node-js-microservices-22685072"> <meta property="og:type" content="website"> <meta name="clientSideIngraphs" content="1" data-gauge-metric-endpoint="/learning-guest/api/ingraphs/gauge" data-counter-metric-endpoint="/learning-guest/api/ingraphs/counter"> <link rel="stylesheet" href="https://static.licdn.com/aero-v1/sc/h/ccepec31u8riooiwchbtig8m0"> <script type="application/ld+json"> {"@context":"http://schema.org/","@type":"Course","provider":{"@type":"Organization","name":"LinkedIn Learning","url":"https://www.linkedin.com/learning/"},"publisher":{"@type":"Organization","name":"LinkedIn Learning","url":"https://www.linkedin.com/learning/"},"hasCourseInstance":{"@type":"CourseInstance","courseMode":"online","courseWorkload":"PT3H39M1S","instructor":[{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"}]},"inLanguage":"en","name":"Node.js: Microservices","offers":[{"@type":"Offer","category":"Subscription"},{"@type":"Offer","category":"Paid","price":"299.99","priceCurrency":"HKD"}],"description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","image":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","creator":[{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"}],"author":[{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"}],"dateCreated":"2023-08-08","datePublished":"2023-08-08","thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","timeRequired":"PT3H39M1S","totalHistoricalEnrollment":4107,"url":"https://www.linkedin.com/learning/node-js-microservices-22685072","about":[{"@type":"Thing","url":"https://www.linkedin.com/learning/search?keywords=Microservices","name":"Microservices"},{"@type":"Thing","url":"https://www.linkedin.com/learning/topics/node-js","name":"Node.js"}],"hasPart":[[{"@type":"VideoObject","name":"Understanding how microservices are built and used - Introduction","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT46S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":false,"isAccessibleForFree":true,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/understanding-how-microservices-are-built-and-used"},{"@type":"VideoObject","name":"What you should know - Introduction","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT1M2S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":false,"isAccessibleForFree":true,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/what-you-should-know"}],[{"@type":"VideoObject","name":"Installing Git, Node.js, and Docker - 1. Prepare Your Development Environment","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT1M18S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":false,"isAccessibleForFree":true,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/installing-git-node-js-and-docker"},{"@type":"VideoObject","name":"Getting the exercise files from GitHub - 1. Prepare Your Development Environment","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT1M48S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/getting-the-exercise-files-from-github"},{"@type":"VideoObject","name":"Setting up Visual Studio Code, ESLint, and Prettier - 1. Prepare Your Development Environment","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT2M51S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-visual-studio-code-eslint-and-prettier"},{"@type":"VideoObject","name":"Launching MongoDB, Redis, and Jaeger in Docker - 1. Prepare Your Development Environment","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M53S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/launching-mongodb-redis-and-jaeger-in-docker"},{"@type":"VideoObject","name":"Installing MongoDB Compass - 1. Prepare Your Development Environment","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT59S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/installing-mongodb-compass"}],[{"@type":"VideoObject","name":"Setting up and exploring your sample application - 2. Planning Your Microservice Migration","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M25S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":false,"isAccessibleForFree":true,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-and-exploring-your-sample-application"},{"@type":"VideoObject","name":"Understanding the sample apps code - 2. Planning Your Microservice Migration","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M37S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/understanding-the-sample-apps-code"},{"@type":"VideoObject","name":"Getting insights with OpenTelemetry and Jaeger - 2. Planning Your Microservice Migration","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M54S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/getting-insights-with-opentelemetry-and-jaeger"},{"@type":"VideoObject","name":"Setting your mission - 2. Planning Your Microservice Migration","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT1M49S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/setting-your-mission"}],[{"@type":"VideoObject","name":"What's your goal for this chapter? - 3. Your First Service: The Catalog Service","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT2M19S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":false,"isAccessibleForFree":true,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter"},{"@type":"VideoObject","name":"Creating the service - 3. Your First Service: The Catalog Service","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT6M35S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-service"},{"@type":"VideoObject","name":"Designing a REST API for the catalog service - 3. Your First Service: The Catalog Service","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M57S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/designing-a-rest-api-for-the-catalog-service"},{"@type":"VideoObject","name":"Adding business logic and database access - 3. Your First Service: The Catalog Service","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M15S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/adding-business-logic-and-database-access"},{"@type":"VideoObject","name":"Creating your first REST endpoint - 3. Your First Service: The Catalog Service","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT4M3S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/creating-your-first-rest-endpoint"},{"@type":"VideoObject","name":"Completing the API - 3. Your First Service: The Catalog Service","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT6M11S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/completing-the-api"},{"@type":"VideoObject","name":"Testing REST endpoints - 3. Your First Service: The Catalog Service","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M36S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/testing-rest-endpoints"}],[{"@type":"VideoObject","name":"What's your goal for this chapter? - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT1M59S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":false,"isAccessibleForFree":true,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter-22664578"},{"@type":"VideoObject","name":"Setting up the registry - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M6S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-the-registry"},{"@type":"VideoObject","name":"Registering services - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT6M55S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/registering-services"},{"@type":"VideoObject","name":"Creating and testing the registration route - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M9S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/creating-and-testing-the-registration-route"},{"@type":"VideoObject","name":"Unregistering services - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT9M27S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/unregistering-services"},{"@type":"VideoObject","name":"Querying the registry - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT8M23S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/querying-the-registry"},{"@type":"VideoObject","name":"Removing expired services - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT7M18S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/removing-expired-services"},{"@type":"VideoObject","name":"Registering on service on start - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M9S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/registering-on-service-on-start"},{"@type":"VideoObject","name":"Adding heartbeat and unregistering on shutdown - 4. Creating a Service Registry","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT4M53S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/adding-heartbeat-and-unregistering-on-shutdown"}],[{"@type":"VideoObject","name":"What's your goal for this chapter? - 5. Using Services","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT29S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter-22664580"},{"@type":"VideoObject","name":"Creating the service client - 5. Using Services","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT9M35S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-service-client"},{"@type":"VideoObject","name":"Using the catalog service - 5. Using Services","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT8M11S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/using-the-catalog-service"},{"@type":"VideoObject","name":"Testing the catalog service - 5. Using Services","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M1S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/testing-the-catalog-service"},{"@type":"VideoObject","name":"Sanitizing data - 5. Using Services","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M36S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/sanitizing-data"},{"@type":"VideoObject","name":"Creating the CartService - 5. Using Services","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT4M56S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-cartservice"},{"@type":"VideoObject","name":"Service monitoring with OpenTelemetry and Jaeger - 5. Using Services","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M29S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/service-monitoring-with-opentelemetry-and-jaeger"}],[{"@type":"VideoObject","name":"API authentication with JWT - 6. Authenticating APIs","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M42S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/api-authentication-with-jwt"},{"@type":"VideoObject","name":"Creating the user service - 6. Authenticating APIs","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M42S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-user-service"},{"@type":"VideoObject","name":"Add JWT tokens to the user service - 6. Authenticating APIs","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT5M9S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/add-jwt-tokens-to-the-user-service"},{"@type":"VideoObject","name":"Make the front end use JWT authentication - 6. Authenticating APIs","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT7M50S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/make-the-front-end-use-jwt-authentication"},{"@type":"VideoObject","name":"Using bearer headers - 6. Authenticating APIs","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT8M47S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/using-bearer-headers"},{"@type":"VideoObject","name":"Protecting endpoints with JWT - 6. Authenticating APIs","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT4M48S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/protecting-endpoints-with-jwt"}],[{"@type":"VideoObject","name":"What's your goal for this chapter? - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT2M27S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter-22663546"},{"@type":"VideoObject","name":"Chaos testing - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT4M18S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/chaos-testing"},{"@type":"VideoObject","name":"Adding caching to reduce load and bridge outages - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT2M40S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/adding-caching-to-reduce-load-and-bridge-outages"},{"@type":"VideoObject","name":"Using queues for decoupling - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT1M43S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/using-queues-for-decoupling"},{"@type":"VideoObject","name":"Installing up RabbitMQ - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT1M24S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/installing-up-rabbitmq"},{"@type":"VideoObject","name":"Setting up the order service - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT3M2S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-the-order-service"},{"@type":"VideoObject","name":"Producing orders - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT6M47S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/producing-orders"},{"@type":"VideoObject","name":"Consuming orders - 7. Adding Fault Tolerance and Resilience","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT9M3S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/consuming-orders"}],[{"@type":"VideoObject","name":"Next steps - Conclusion","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT45S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":true,"isAccessibleForFree":false,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/next-steps"}]],"syllabusSections":[{"@type":"Syllabus","name":"Understanding how microservices are built and used","timeRequired":"PT46S","description":"This video shows what you will learn while going through this course."},{"@type":"Syllabus","name":"What you should know","timeRequired":"PT1M2S","description":"This course is not a beginner's course. The required knowledge and courses to take to get the most out of it are covered in this video."},{"@type":"Syllabus","name":"Installing Git, Node.js, and Docker","timeRequired":"PT1M18S","description":"In this video, you start setting up the development environment, starting with Node.js, Git, and Docker."},{"@type":"Syllabus","name":"Getting the exercise files from GitHub","timeRequired":"PT1M48S","description":"This video covers how to pull the exercise files from GitHub."},{"@type":"Syllabus","name":"Setting up Visual Studio Code, ESLint, and Prettier","timeRequired":"PT2M51S","description":"Visual Studio Code is the IDE used in this course. In this video, learn how to set it up."},{"@type":"Syllabus","name":"Launching MongoDB, Redis, and Jaeger in Docker","timeRequired":"PT3M53S","description":"In this video, learn about setting up a few additional components using Docker."},{"@type":"Syllabus","name":"Installing MongoDB Compass","timeRequired":"PT59S","description":"This video shows how to set up MongoDB Compass."},{"@type":"Syllabus","name":"Setting up and exploring your sample application","timeRequired":"PT5M25S","description":"This course comes with a monolithic sample application that you can use as the starting point. In this video, learn how to set it up."},{"@type":"Syllabus","name":"Understanding the sample apps code","timeRequired":"PT5M37S","description":"In this video, look into the sample video in more detail to understand its inner workings."},{"@type":"Syllabus","name":"Getting insights with OpenTelemetry and Jaeger","timeRequired":"PT3M54S","description":"OpenTelemetry and Jaeger are popular open-source projects that can be used to look under the hood of microservice architectures. In this video, discover the basics."},{"@type":"Syllabus","name":"Setting your mission","timeRequired":"PT1M49S","description":"In this video, explore the overall mission that you want to accomplish during this course."},{"@type":"Syllabus","name":"What's your goal for this chapter?","timeRequired":"PT2M19S","description":"This chapter covers the setup of the first service. This video shows what you want to accomplish."},{"@type":"Syllabus","name":"Creating the service","timeRequired":"PT6M35S","description":"This video shows the basic setup of a service, using a service template."},{"@type":"Syllabus","name":"Designing a REST API for the catalog service","timeRequired":"PT3M57S","description":"REST API design is an important topic. In this video, briefly explore the fundamentals of REST."},{"@type":"Syllabus","name":"Adding business logic and database access","timeRequired":"PT5M15S","description":"In this video, learn how to migrate the logic for the catalog service from the monolith."},{"@type":"Syllabus","name":"Creating your first REST endpoint","timeRequired":"PT4M3S","description":"In this video, learn how to create a REST endpoint with Express."},{"@type":"Syllabus","name":"Completing the API","timeRequired":"PT6M11S","description":"In this video, learn how to connect all loose ends to complete the API."},{"@type":"Syllabus","name":"Testing REST endpoints","timeRequired":"PT5M36S","description":"This video shows, how you can test REST endpoints from within Visual Studio Code."},{"@type":"Syllabus","name":"What's your goal for this chapter?","timeRequired":"PT1M59S","description":"In this video, discover what a service registry is and why you need one."},{"@type":"Syllabus","name":"Setting up the registry","timeRequired":"PT5M6S","description":"In this video, learn how to set up the provided scaffold that will later contain the service registry logic."},{"@type":"Syllabus","name":"Registering services","timeRequired":"PT6M55S","description":"In this video, learn how to create the basic structure of the registry logic and implement a method that registers services."},{"@type":"Syllabus","name":"Creating and testing the registration route","timeRequired":"PT5M9S","description":"This video shows how to wire up the registration logic with an HTTP route and how to test it."},{"@type":"Syllabus","name":"Unregistering services","timeRequired":"PT9M27S","description":"Services should also be able to unregister themselves. In this video, learn how to implement and test the required methods and routes."},{"@type":"Syllabus","name":"Querying the registry","timeRequired":"PT8M23S","description":"This video covers how to query the registry from a route."},{"@type":"Syllabus","name":"Removing expired services","timeRequired":"PT7M18S","description":"Services that exit gracefully, should be able to unregister themselves. In this video, learn how to build that functionality into the registry."},{"@type":"Syllabus","name":"Registering on service on start","timeRequired":"PT5M9S","description":"This video shows how a service needs to register itself with the registry on startup."},{"@type":"Syllabus","name":"Adding heartbeat and unregistering on shutdown","timeRequired":"PT4M53S","description":"In this video, learn how to add the logic needed to purge expired services from the registry."},{"@type":"Syllabus","name":"What's your goal for this chapter?","timeRequired":"PT29S","description":"This chapter covers how to utilize microservices. In this video, explore this in more detail."},{"@type":"Syllabus","name":"Creating the service client","timeRequired":"PT9M35S","description":"This video shows how to create a generic service client that uses the service registry to discover services before calling them."},{"@type":"Syllabus","name":"Using the catalog service","timeRequired":"PT8M11S","description":"This video shows how to call the catalog service from the newly-created service client."},{"@type":"Syllabus","name":"Testing the catalog service","timeRequired":"PT3M1S","description":"This video shows how you can test the catalog service."},{"@type":"Syllabus","name":"Sanitizing data","timeRequired":"PT5M36S","description":"This video shows why it's important to not directly send data from the database through a REST endpoint and how to control which data is sent."},{"@type":"Syllabus","name":"Creating the CartService","timeRequired":"PT4M56S","description":"In this video, learn how to bring in a ready-made cart service and connect it to the front end."},{"@type":"Syllabus","name":"Service monitoring with OpenTelemetry and Jaeger","timeRequired":"PT3M29S","description":"This video shows how to explore and observe your service architecture using OpenTelemetry and Jaeger."},{"@type":"Syllabus","name":"API authentication with JWT","timeRequired":"PT3M42S","description":"JWT provides a way to secure and ensure authentication for API endpoints. In this video, explore the fundamentals."},{"@type":"Syllabus","name":"Creating the user service","timeRequired":"PT3M42S","description":"In this video, learn how to bring in a ready-made user service."},{"@type":"Syllabus","name":"Add JWT tokens to the user service","timeRequired":"PT5M9S","description":"This video shows how to add JWT to your authentication routes."},{"@type":"Syllabus","name":"Make the front end use JWT authentication","timeRequired":"PT7M50S","description":"The front end needs to be able to read JWT tokens. In this video, learn how to add this logic."},{"@type":"Syllabus","name":"Using bearer headers","timeRequired":"PT8M47S","description":"This video shows how a caller can authenticate itself using an HTTP header."},{"@type":"Syllabus","name":"Protecting endpoints with JWT","timeRequired":"PT4M48S","description":"Endpoints need to read and validate the JWT bearer token from the header to be protected. In this video, learn how to protect your catalog service CRUD operations."},{"@type":"Syllabus","name":"What's your goal for this chapter?","timeRequired":"PT2M27S","description":"Microservice architectures are complex and can be resilient or a complete hairball. In this video, discover techniques to increase the overall resilience of your architecture."},{"@type":"Syllabus","name":"Chaos testing","timeRequired":"PT4M18S","description":"Chaos testing is a way to test what would happen if a service fails. In this video, explore a very simple example by doing this manually."},{"@type":"Syllabus","name":"Adding caching to reduce load and bridge outages","timeRequired":"PT2M40S","description":"A cache can help to reduce load but also ensure that data can be displayed even if a service is down. In this video, learn how to implement a very simple memory-based cache."},{"@type":"Syllabus","name":"Using queues for decoupling","timeRequired":"PT1M43S","description":"Queues are a popular technique to decouple an operation in one part of the architecture from a consuming service. This video covers the fundamentals."},{"@type":"Syllabus","name":"Installing up RabbitMQ","timeRequired":"PT1M24S","description":"In this video, learn how to set up RabbitMQ using Docker."},{"@type":"Syllabus","name":"Setting up the order service","timeRequired":"PT3M2S","description":"In this video, learn how to bring in the ready-made order service."},{"@type":"Syllabus","name":"Producing orders","timeRequired":"PT6M47S","description":"This video shows how a new order is published to RabbitMQ."},{"@type":"Syllabus","name":"Consuming orders","timeRequired":"PT9M3S","description":"This video shows how to consume orders from the RabbitMQ queue."},{"@type":"Syllabus","name":"Next steps","timeRequired":"PT45S","description":"This video summarizes what you have built and shows some courses that you could take next."}],"aggregateRating":{"@type":"AggregateRating","ratingCount":73,"ratingValue":4.7,"bestRating":5,"worstRating":1},"review":[{"@type":"Review","author":{"@type":"Person","name":"Sanuda Jayathilake","jobTitle":"--","url":"https://lk.linkedin.com/in/sanuda-jayathilake-24a0621ba"},"reviewRating":{"@type":"Rating","ratingValue":5},"reviewBody":"I recently completed Daniel Khan's Node.js Microservices course on LinkedIn Learning, and it was a fantastic experience! The course was well-structured and perfectly balanced between theory and practical examples. Daniel's teaching style is clear, and he breaks down complex microservice architecture concepts into digestible pieces, making it easier to understand how Node.js fits into the microservices ecosystem.","datePublished":"2024-10-08T01:52:41.455Z","publisher":{"@type":"Organization","name":"LinkedIn"},"bestRating":5,"worstRating":1},{"@type":"Review","author":{"@type":"Person","name":"Raveen Lakshitha","jobTitle":"Trainee Software Engineer","url":"https://lk.linkedin.com/in/raveen-lakshitha-6733a6185"},"reviewRating":{"@type":"Rating","ratingValue":5},"reviewBody":"Yes","datePublished":"2024-05-12T04:38:05.939Z","publisher":{"@type":"Organization","name":"LinkedIn"},"bestRating":5,"worstRating":1},{"@type":"Review","author":{"@type":"Person","name":"Debanjan Goswami","jobTitle":"Software engineer at Berkadia | Full Stack developer | React | Node | Javascript/Typescript | Mongodb | microservices | AWS","url":"https://in.linkedin.com/in/debanjan05051993"},"reviewRating":{"@type":"Rating","ratingValue":4},"reviewBody":"it is good","datePublished":"2024-02-19T15:57:44.838Z","publisher":{"@type":"Organization","name":"LinkedIn"},"bestRating":5,"worstRating":1}],"video":{"@type":"VideoObject","name":"Understanding how microservices are built and used - Node.js: Microservices","author":{"@type":"Person","name":"Daniel Khan","description":"Member of the Management Board | KHAN Berufsbekleidung","jobTitle":"Member of the Management Board | KHAN Berufsbekleidung","url":"https://at.linkedin.com/in/khandaniel","image":"https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U"},"thumbnailUrl":"https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4","description":"Gain a deeper understanding of how microservices are built and used. Learn how to use Node.js to build out a microservices architecture from scratch while splitting up a monolith.","duration":"PT46S","datePublished":"2023-08-08","uploadDate":"2023-08-08","requiresSubscription":false,"isAccessibleForFree":true,"contentUrl":"https://www.linkedin.com/learning/node-js-microservices-22685072/understanding-how-microservices-are-built-and-used"},"educationalLevel":"Advanced","educationalCredentialAwarded":[{"@type":"EducationalOccupationalCredential","name":"LinkedIn Learning Certificate of Completion","url":"https://www.linkedin.com/help/learning/answer/a598944/learning-certificates-of-completion-faqs","credentialCategory":"Certificate","offers":[{"@type":"Offer","category":"Subscription"}]}]} </script> <!----> </head> <body dir="ltr"> <!----><!----><!----> <!----> <a href="#main-content" class="skip-link btn-md btn-primary absolute z-11 -top-[100vh] focus:top-0"> Skip to main content </a> <header class="header base-detail-page__header px-mobile-container-padding bg-color-background-container global-alert-offset sticky-header"> <nav class="nav pt-1.5 pb-2 flex items-center justify-between relative flex-nowrap babymamabear:py-1.5 nav--minified-mobile " aria-label="Primary"> <a href="https://www.linkedin.com/learning/?trk=learning-course_nav-header-logo" class="nav__logo-link link-no-visited-state z-1 mr-auto min-h-[52px] flex items-center babybear:z-0 hover:no-underline focus:no-underline active:no-underline babymamabear:mr-3" data-tracking-control-name="learning-course_nav-header-logo" data-tracking-will-navigate> <div class="learning-logo"> <icon class="learning-logo__inbug onload" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4zqr0f9jf98vi2nkijyc3bex2"></icon> <span class="learning-logo__text" aria-hidden="true">Learning</span> <span class="sr-only">LinkedIn Learning</span> </div> </a> <section class="search-bar relative flex flex-grow h-[40px] bg-cool-gray-20 min-w-0 max-w-full mx-4 rounded-sm babymamabear:mx-0 babymamabear:mb-1.5 babymamabear:bg-color-transparent babymamabear:w-full babymamabear:flex babymamabear:flex-wrap search-bar--minified-mobile" data-current-search-type="LEARNING"> <button class="search-bar__placeholder papabear:hidden text-input w-full mt-1.5 !pl-[14px] border-1 border-solid border-color-border-faint rounded-[2px] h-[40px] max-h-[40px] flex items-center overflow-hidden cursor-text" data-tracking-control-name="learning-course_search-switcher-opener"> <icon class="text-color-icon w-3 h-3 mr-1" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/397vrsk6op88l4981ji1xe1qt"></icon> <div class="search-bar__full-placeholder font-sans text-md text-color-text max-w-[calc(100%-40px)] text-left whitespace-nowrap overflow-hidden text-ellipsis"> <!----><!----> Search skills, subjects, or software <!----> </div> <span class="sr-only">Expand search</span> </button> <div class="switcher-tabs__trigger-and-tabs babymamabear:flex"> <button aria-expanded="false" class="switcher-tabs__placeholder flex !h-full !py-0 !pl-2 !pr-1.5 border-r-1 border-solid border-r-color-border-faint babymamabear:hidden tab-md papabear:tab-vertical papabear:justify-start cursor-pointer" data-tracking-control-name="learning-course_switcher-tabs-placeholder" aria-describedby="switcher-description"> <span class="switcher-tabs__placeholder-text m-auto"></span> <icon class="switcher-tabs__caret-down-filled onload pointer-events-none block my-auto min-h-[24px] min-w-[24px] h-[24px] babymamabear:hidden" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/7asbl4deqijhoy3z2ivveispv"></icon> </button> <div id="switcher-description" class="hidden">This button displays the currently selected search type. When expanded it provides a list of search options that will switch the search inputs to match the current selection. </div> <!----> <div class="switcher-tabs hidden z-[1] w-auto min-w-[160px] mb-1.5 py-1 absolute top-[48px] left-0 border-solid border-1 border-color-border-faint papabear:container-raised babymamabear:static babymamabear:w-[100vw] babymamabear:h-[48px] babymamabear:p-0 overflow-y-hidden overflow-x-auto md:overflow-x-hidden"> <ul class="switcher-tabs__list flex flex-1 items-stretch papabear:flex-col" role="tablist"> <li class="switcher-tabs__tab h-[44px] babymamabear:basis-1/2" role="presentation"> <button aria-controls="jobs-search-panel" aria-selected="false" class="switcher-tabs__button w-full h-full tab-md papabear:tab-vertical papabear:justify-start cursor-pointer " data-switcher-type="JOBS" data-tracking-control-name="learning-course_switcher-tabs-jobs-search-switcher" id="job-switcher-tab" role="tab"> Jobs </button> </li> <li class="switcher-tabs__tab h-[44px] babymamabear:basis-1/2" role="presentation"> <button aria-controls="people-search-panel" aria-selected="false" class="switcher-tabs__button w-full h-full tab-md papabear:tab-vertical papabear:justify-start cursor-pointer " data-switcher-type="PEOPLE" data-tracking-control-name="learning-course_switcher-tabs-people-search-switcher" id="people-switcher-tab" role="tab"> People </button> </li> <li class="switcher-tabs__tab h-[44px] babymamabear:basis-1/2" role="presentation"> <button aria-controls="learning-search-panel" aria-selected="true" class="switcher-tabs__button w-full h-full tab-md papabear:tab-vertical papabear:justify-start cursor-pointer tab-selected" data-switcher-type="LEARNING" data-tracking-control-name="learning-course_switcher-tabs-learning-search-switcher" id="learning-switcher-tab" role="tab"> Learning </button> </li> </ul> <button aria-label="Close" class="switcher-tabs__cancel-btn papabear:hidden block w-6 h-6 m-auto text-color-text-low-emphasis" data-tracking-control-name="learning-course_switcher-tabs-cancel-search-switcher" type="button"> <icon class="switcher-tabs__cancel-icon block w-3 h-3 m-auto onload" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cs55jggk4p3uqh9ozxdmpvjg7"></icon> </button> </div> </div> <section class="base-search-bar w-full h-full" data-searchbar-type="PEOPLE" aria-labelledby="people-switcher-tab" id="people-search-panel" role="tabpanel"> <form class="base-search-bar__form w-full flex babymamabear:mx-mobile-container-padding babymamabear:flex-col" role="search" action="/pub/dir" data-tracking-control-name="learning-course_people-search-bar_base-search-bar-form"> <section class="dismissable-input text-input !pr-3 bg-color-transparent flex items-center h-[40px] min-w-0 relative babybear:w-full babybear:mb-1 search-input"> <input aria-label="First Name" autocomplete="on" class="dismissable-input__input font-sans text-md text-color-text bg-color-transparent flex items-center flex-1 focus:outline-none placeholder:text-color-text-secondary" data-tracking-control-name="learning-course_people-search-bar_first-name_dismissable-input" maxlength="500" name="firstName" placeholder="First Name" type="search"> <button class="dismissable-input__button text-color-text h-[40px] min-w-[24px] w-[24px] -mr-2 opacity-0 transition-opacity duration-[0.1s] disabled:invisible focus:opacity-100" data-tracking-control-name="learning-course_people-search-bar_first-name_dismissable-input-clear" type="button"> <label class="sr-only">Clear text</label> <icon class="dismissable-input__button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cs55jggk4p3uqh9ozxdmpvjg7"></icon> </button> </section> <section class="dismissable-input text-input !pr-3 bg-color-transparent flex items-center h-[40px] min-w-0 relative babybear:w-full babybear:mb-1 search-input"> <input aria-label="Last Name" autocomplete="on" class="dismissable-input__input font-sans text-md text-color-text bg-color-transparent flex items-center flex-1 focus:outline-none placeholder:text-color-text-secondary" data-tracking-control-name="learning-course_people-search-bar_last-name_dismissable-input" maxlength="500" name="lastName" placeholder="Last Name" type="search"> <button class="dismissable-input__button text-color-text h-[40px] min-w-[24px] w-[24px] -mr-2 opacity-0 transition-opacity duration-[0.1s] disabled:invisible focus:opacity-100" data-tracking-control-name="learning-course_people-search-bar_last-name_dismissable-input-clear" type="button"> <label class="sr-only">Clear text</label> <icon class="dismissable-input__button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cs55jggk4p3uqh9ozxdmpvjg7"></icon> </button> </section> <input name="trk" value="learning-course_people-search-bar_search-submit" type="hidden"> <button class="base-search-bar__submit-btn block basis-[40px] flex-shrink-0 cursor-pointer babymamabear:invisible babymamabear:ml-[-9999px] babymamabear:w-[1px] babymamabear:h-[1px]" aria-label="Search" data-tracking-control-name="learning-course_people-search-bar_base-search-bar-search-submit" type="submit"> <icon class="base-search-bar__search-icon onload mx-auto" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cb5bsr4tsn2r4sjg9e3ls4tjl"></icon> </button> </form> </section> <section class="base-search-bar w-full h-full" data-searchbar-type="JOBS" aria-labelledby="job-switcher-tab" id="jobs-search-panel" role="tabpanel"> <form class="base-search-bar__form w-full flex babymamabear:mx-mobile-container-padding babymamabear:flex-col" role="search" action="/jobs/search" data-tracking-control-name="learning-course_jobs-search-bar_base-search-bar-form"> <code id="i18n_aria_live_text_no-suggestions" style="display: none"><!--"No suggestions found"--></code> <code id="i18n_aria_live_text_one-suggestion" style="display: none"><!--"One Suggestion. Use up and down keys to navigate"--></code> <code id="i18n_aria_live_text_multiple-suggestions" style="display: none"><!--"Multiple Suggestions. Use up and down keys to navigate"--></code> <section class="dismissable-input text-input !pr-3 bg-color-transparent flex items-center h-[40px] min-w-0 relative babybear:w-full babybear:mb-1 typeahead-input keywords-typeahead-input text-input"> <input aria-autocomplete="list" aria-controls="job-search-bar-keywords-typeahead-list" aria-haspopup="listbox" aria-label="Search job titles or companies" autocomplete="off" class="dismissable-input__input font-sans text-md text-color-text bg-color-transparent flex items-center flex-1 focus:outline-none placeholder:text-color-text-secondary" data-tracking-control-name="learning-course_dismissable-input" id="job-search-bar-keywords" maxlength="500" name="keywords" placeholder="Search job titles or companies" role="combobox" type="search"> <!----> <div class="typeahead-input__dropdown container-lined absolute top-[calc(100%+3px)] left-0 w-full rounded-b-md rounded-t-none z-[10] overflow-hidden max-w-none babybear:min-w-full babybear:bottom-0 babybear:overflow-y-auto"> <template class="typeahead-item-template"> <li class="typeahead-input__dropdown-item py-1.5 px-2 hover:cursor-pointer hover:bg-color-surface-new-hover hover:border-y-2 hover:border-solid hover:border-color-container-primary" role="option"> <span class="typeahead-input__dropdown-text font-sans text-sm font-bold text-color-text"></span> </li> </template> <ul class="typeahead-input__dropdown-list w-full" id="job-search-bar-keywords-typeahead-list" role="listbox"></ul> </div> <!----> <button class="dismissable-input__button text-color-text h-[40px] min-w-[24px] w-[24px] -mr-2 opacity-0 transition-opacity duration-[0.1s] disabled:invisible focus:opacity-100" data-tracking-control-name="learning-course_dismissable-input-clear" type="button"> <label class="sr-only">Clear text</label> <icon class="dismissable-input__button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cs55jggk4p3uqh9ozxdmpvjg7"></icon> </button> </section> <!----> <code id="i18n_aria_live_text_no-suggestions" style="display: none"><!--"No suggestions found"--></code> <code id="i18n_aria_live_text_one-suggestion" style="display: none"><!--"One Suggestion. Use up and down keys to navigate"--></code> <code id="i18n_aria_live_text_multiple-suggestions" style="display: none"><!--"Multiple Suggestions. Use up and down keys to navigate"--></code> <section class="dismissable-input text-input !pr-3 bg-color-transparent flex items-center h-[40px] min-w-0 relative babybear:w-full babybear:mb-1 typeahead-input location-typeahead-input"> <input aria-autocomplete="list" aria-controls="job-search-bar-location-typeahead-list" aria-haspopup="listbox" aria-label="Location" autocomplete="off" class="dismissable-input__input font-sans text-md text-color-text bg-color-transparent flex items-center flex-1 focus:outline-none placeholder:text-color-text-secondary" data-tracking-control-name="learning-course_dismissable-input" id="job-search-bar-location" maxlength="500" name="location" placeholder="Location" role="combobox" value="Hong Kong" type="search"> <!----> <div class="typeahead-input__dropdown container-lined absolute top-[calc(100%+3px)] left-0 w-full rounded-b-md rounded-t-none z-[10] overflow-hidden max-w-none babybear:min-w-full babybear:bottom-0 babybear:overflow-y-auto"> <template class="typeahead-item-template"> <li class="typeahead-input__dropdown-item py-1.5 px-2 hover:cursor-pointer hover:bg-color-surface-new-hover hover:border-y-2 hover:border-solid hover:border-color-container-primary" role="option"> <span class="typeahead-input__dropdown-text font-sans text-sm font-bold text-color-text"></span> </li> </template> <ul class="typeahead-input__dropdown-list w-full" id="job-search-bar-location-typeahead-list" role="listbox"></ul> </div> <!----> <button class="dismissable-input__button text-color-text h-[40px] min-w-[24px] w-[24px] -mr-2 opacity-0 transition-opacity duration-[0.1s] disabled:invisible focus:opacity-100" data-tracking-control-name="learning-course_dismissable-input-clear" type="button"> <label class="sr-only">Clear text</label> <icon class="dismissable-input__button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cs55jggk4p3uqh9ozxdmpvjg7"></icon> </button> </section> <input name="geoId" value="102817007" type="hidden"> <input name="trk" value="learning-course_jobs-search-bar_search-submit" type="hidden"> <button class="base-search-bar__submit-btn block basis-[40px] flex-shrink-0 cursor-pointer babymamabear:invisible babymamabear:ml-[-9999px] babymamabear:w-[1px] babymamabear:h-[1px]" aria-label="Search" data-tracking-control-name="learning-course_jobs-search-bar_base-search-bar-search-submit" type="submit"> <icon class="base-search-bar__search-icon onload mx-auto" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cb5bsr4tsn2r4sjg9e3ls4tjl"></icon> </button> </form> </section> <section class="base-search-bar w-full h-full" data-searchbar-type="LEARNING" aria-labelledby="learning-switcher-tab" id="learning-search-panel" role="tabpanel"> <form class="base-search-bar__form w-full flex babymamabear:mx-mobile-container-padding babymamabear:flex-col" role="search" action="/learning/search" data-tracking-control-name="learning-course_learning-search-bar_base-search-bar-form"> <section class="dismissable-input text-input !pr-3 bg-color-transparent flex items-center h-[40px] min-w-0 relative babybear:w-full babybear:mb-1 search-input"> <input aria-label="Search skills, subjects, or software" autocomplete="on" class="dismissable-input__input font-sans text-md text-color-text bg-color-transparent flex items-center flex-1 focus:outline-none placeholder:text-color-text-secondary" data-tracking-control-name="learning-course_learning-search-bar_keywords_dismissable-input" maxlength="500" name="keywords" placeholder="Search skills, subjects, or software" type="search"> <button class="dismissable-input__button text-color-text h-[40px] min-w-[24px] w-[24px] -mr-2 opacity-0 transition-opacity duration-[0.1s] disabled:invisible focus:opacity-100" data-tracking-control-name="learning-course_learning-search-bar_keywords_dismissable-input-clear" type="button"> <label class="sr-only">Clear text</label> <icon class="dismissable-input__button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cs55jggk4p3uqh9ozxdmpvjg7"></icon> </button> </section> <input class="nav__search-uoo" name="upsellOrderOrigin" type="hidden"> <input name="trk" value="learning-course_learning-search-bar_search-submit" type="hidden"> <button class="base-search-bar__submit-btn block basis-[40px] flex-shrink-0 cursor-pointer babymamabear:invisible babymamabear:ml-[-9999px] babymamabear:w-[1px] babymamabear:h-[1px]" aria-label="Search" data-tracking-control-name="learning-course_learning-search-bar_base-search-bar-search-submit" type="submit"> <icon class="base-search-bar__search-icon onload mx-auto" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cb5bsr4tsn2r4sjg9e3ls4tjl"></icon> </button> </form> </section> <!----> <div aria-live="polite" class="search-bar__live-text sr-only" role="status"></div> </section> <!----> <div class="nav__cta-container order-3 flex gap-x-1 justify-end min-w-[100px] flex-nowrap flex-shrink-0 babybear:flex-wrap flex-2 babymamabear:min-w-[50px] "> <a class="nav__button-tertiary btn-md btn-tertiary" href="http://www.linkedin.com/learning/subscription/products?courseSlug=node-js-microservices-22685072&destRedirectURL=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072&trk=learning-course_nav-header-join&upsellTrk=lil_upsell_nav_subscription&session_redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card" data-tracking-control-name="lil_upsell_nav_subscription" data-tracking-impression-name="lil_upsell_nav_subscription" data-test-live-nav-primary-cta data-tracking-will-navigate> Start free trial </a> <a class="nav__button-secondary btn-md btn-secondary-emphasis" href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&fromSignIn=true&session_redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_nav-header-signin" data-tracking-control-name="learning-course_nav-header-signin" data-tracking-will-navigate> Sign in </a> <a aria-label="Sign in" class="nav__link-person papabear:hidden mamabear:hidden" data-tracking-control-name="learning-course_nav-header-signin" data-tracking-will-navigate href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&fromSignIn=true&session_redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_nav-header-signin"> <img class="inline-block relative rounded-[50%] w-4 h-4 bg-color-entity-ghost-background" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt> </a> </div> <!----> <!----> </nav> </header> <!----> <div class="cta-banner "> <div class="enterprise-nav"> <div class="enterprise-nav__content-wrapper"> <p id="enterprise-nav-solutions" class="enterprise-nav__content" tabindex="-1"> Solutions for: </p> <a href="https://learning.linkedin.com/for-entire-companies?src=li-learning-nav&trk=learning-course_enterprise-nav" aria-labelledby="enterprise-nav-solutions business-nav-business" class="enterprise-nav__content" data-tracking-control-name="learning-course_enterprise-nav" data-tracking-will-navigate="true" id="business-nav-business">Business</a> <a href="https://learning.linkedin.com/for-higher-education?src=li-learning-nav&trk=learning-course_enterprise-nav" aria-labelledby="enterprise-nav-solutions business-nav-education" class="enterprise-nav__content" data-tracking-control-name="learning-course_enterprise-nav" data-tracking-will-navigate="true" id="business-nav-education">Higher Education</a> <a href="https://learning.linkedin.com/for-governments?src=li-learning-nav&trk=learning-course_enterprise-nav" aria-labelledby="enterprise-nav-solutions business-nav-government" class="enterprise-nav__content" data-tracking-control-name="learning-course_enterprise-nav" data-tracking-will-navigate="true" id="business-nav-government">Government</a> <a href="/learning/subscription/teams?veh=lil_upx&src=li-learning-nav&trk=learning-course_enterprise-nav" aria-labelledby="enterprise-nav-solutions business-nav-buy" class="enterprise-nav__content" data-test-live-enterprise-upsell="true" data-tracking-control-name="learning-course_enterprise-nav" data-tracking-will-navigate="true" data-tracking-impression-name="lil_upsell_learning-course_enterprise-nav_teambuy" id="business-nav-buy">Buy for my team</a> </div> </div> <!----> <!----> </div> <main class="main papabear:flex papabear:w-content-max-w papabear:mx-auto papabear:pt-desktop-content-top-margin mamabear:pt-desktop-content-top-margin " id="main-content" role="main"> <section class="core-rail mx-auto papabear:w-core-rail-width mamabear:max-w-[790px] babybear:max-w-[790px]"> <ol class="breadcrumb__list"> <li class="breadcrumb__item"> <a class="breadcrumb__link" href="https://www.linkedin.com/learning/browse?trk=learning-course_breadcrumb" data-tracking-control-name="learning-course_breadcrumb" data-tracking-will-navigate>All topics</a> </li> <li class="breadcrumb__item"> <a class="breadcrumb__link" href="https://www.linkedin.com/learning/topics/technology?trk=learning-course_breadcrumb" data-tracking-control-name="learning-course_breadcrumb" data-tracking-will-navigate>Technology</a> </li> <li class="breadcrumb__item"> <a class="breadcrumb__link" href="https://www.linkedin.com/learning/topics/software-development?trk=learning-course_breadcrumb" data-tracking-control-name="learning-course_breadcrumb" data-tracking-will-navigate>Software Development</a> </li> <li class="breadcrumb__item"> <a class="breadcrumb__link" href="https://www.linkedin.com/learning/topics/software-architecture?trk=learning-course_breadcrumb" data-tracking-control-name="learning-course_breadcrumb" data-tracking-will-navigate>Software Architecture</a> </li> </ol> <script type="application/ld+json"> {"@context":"http://schema.org/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"All topics","item":"https://www.linkedin.com/learning/browse"},{"@type":"ListItem","position":2,"name":"Technology","item":"https://www.linkedin.com/learning/topics/technology"},{"@type":"ListItem","position":3,"name":"Software Development","item":"https://www.linkedin.com/learning/topics/software-development"},{"@type":"ListItem","position":4,"name":"Software Architecture","item":"https://www.linkedin.com/learning/topics/software-architecture"}]} </script> <section class="top-card-layout container-lined overflow-hidden babybear:rounded-[0px]"> <section class="top-card__image-container"> <img class="top-card__image" alt="Node.js: Microservices" data-delayed-url="https://media.licdn.com/dms/image/v2/D560DAQGNhXwSHfVTTg/learning-public-crop_675_1200/learning-public-crop_675_1200/0/1691165894653?e=2147483647&v=beta&t=ThnvpyREcLCGAomRfWZlgFSbTPHmqCrdrD-9g9rvjC4"> <a class="top-card__overlay-button" data-tracking-control-name="course_preview" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/understanding-how-microservices-are-built-and-used?autoplay=true&trk=course_preview"> <span class="top-card__preview-cta "> <icon class="top-card__preview-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5jwhkytplzxiejvhzfu0t7m8l"> </icon> <span class="top-card__preview-cta-text">Preview</span> </span> <!----> </a> </section> <div class="top-card-layout__card relative p-2 papabear:p-details-container-padding"> <div class="top-card-layout__entity-info-container flex flex-wrap papabear:flex-nowrap"> <div class="top-card-layout__entity-info flex-grow flex-shrink-0 basis-0 babybear:flex-none babybear:w-full babybear:flex-none babybear:w-full"> <h1 class="top-card-layout__title font-sans text-lg papabear:text-xl font-bold leading-open text-color-text mb-0"> Node.js: Microservices </h1> <h2 class="top-card-layout__headline break-words font-sans text-md leading-open text-color-text"> <div class="top-card__headline-row"> <span class="top-card__headline-row-item top-card__headline-row-item--large">With Daniel Khan</span> <span class="top-card__headline-row-item">Liked by 88 users</span> </div> <div class="top-card__headline-row"> <span class="top-card__headline-row-item">Duration: 3h 39m</span> <span class="top-card__headline-row-item">Skill level: Advanced</span> <span class="top-card__headline-row-item">Released: 8/8/2023</span> </div> </h2> <!----> <!----> <div class="top-card-layout__cta-container flex flex-wrap mt-0.5 papabear:mt-0 ml-[-12px]"> <a href="http://www.linkedin.com/learning/subscription/products?courseSlug=node-js-microservices-22685072&destRedirectURL=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072&trk=course_info&upsellTrk=lil_upsell_course_info_subscription" data-tracking-control-name="lil_upsell_course_info_subscription" data-tracking-impression-name="lil_upsell_course_info_subscription" data-litms-tracking-control-name="lil_upsell_course_info_subscription" data-tracking-will-navigate class="top-card__upsell-link top-card-layout__cta mt-2 ml-1.5 h-auto babybear:flex-auto top-card-layout__cta--primary btn-md btn-primary" data-test-live-course-sub-upsell> Start my 1-month free trial </a> <a class="buy-for-your-team-cta__link top-card-layout__cta mt-2 ml-1.5 h-auto babybear:flex-auto top-card-layout__cta--secondary btn-md btn-secondary" href="/learning/subscription/teams?veh=lil_upx&src=li-lil-upsell&trk=learning-course_buy-for-your-team-cta" data-tracking-control-name="learning-course_buy-for-your-team-cta" data-tracking-impression-name="lil_upsell_learning-course_buy-for-your-team-cta_teambuy" data-test-live-buy-for-your-team-upsell data-tracking-will-navigate> Buy for my team </a> </div> </div> <!----> </div> <!----> <!----> </div> </section> <div class="details mx-details-container-padding"> <section class="core-section-container my-3 course-details"> <!----> <h2 class="core-section-container__title section-title"> Course details </h2> <!----> <div class="core-section-container__content break-words"> <section class="show-more-less-html course-details__description" data-max-lines="4"> <div class="show-more-less-html__markup show-more-less-html__markup--clamp-after-4 relative overflow-hidden"> In this fast-paced era of distributed systems, mastering microservices—not just deploying services, but truly understanding the patterns and principles that drive them— is essential for developers. And in organizations large and small, Node.js is often the platform of choice for building microservices architectures. In this course, Daniel Khan shows you how to use Node.js to create a microservice architecture from scratch and tackles the all-too-common challenge of transforming a monolithic app into a flexible, modular system composed of individual services. Throughout the course, Daniel explores crucial concepts like service discovery, resilience, and decoupling. Check out this course to gain practical knowledge of microservices that you can apply to your day-to-day work immediately. </div> <button class="show-more-less-html__button show-more-less-button show-more-less-html__button--more ml-0.5" data-tracking-control-name="learning-course_show-more-html-btn" aria-label="i18n_show_more" aria-expanded="false"> <!----> Show more <icon class="show-more-less-html__button-icon show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less-html__button show-more-less-button show-more-less-html__button--less ml-0.5" data-tracking-control-name="learning-course_show-less-html-btn" aria-label="i18n_show_less" aria-expanded="true"> <!----> Show less <icon class="show-more-less-html__button-icon show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <!----> </section> </div> </section> <section class="core-section-container my-3 course-skills"> <!----> <h2 class="core-section-container__title section-title"> Skills you’ll gain </h2> <!----> <div class="core-section-container__content break-words"> <ul class="course-skills__skill-list"> <li class="course-skills__skill-list-item"> <a href="https://www.linkedin.com/learning/search?keywords=Microservices&trk=learning-course_pill-list" data-tracking-control-name="learning-course_pill-list" data-tracking-will-navigate class="pill flex w-fit mr-[6px] mb-1 hover:no-underline skill-pill"> Microservices </a> </li> <li class="course-skills__skill-list-item"> <a href="https://www.linkedin.com/learning/topics/node-js?trk=learning-course_pill-list" data-tracking-control-name="learning-course_pill-list" data-tracking-will-navigate class="pill flex w-fit mr-[6px] mb-1 hover:no-underline skill-pill"> Node.js </a> </li> </ul> </div> </section> <section class="core-section-container my-3"> <!----> <h2 class="core-section-container__title section-title"> Earn a sharable certificate </h2> <!----> <div class="core-section-container__content break-words"> <p class="course-certificate__body-paragraph">Share what you’ve learned, and be a standout professional in your desired industry with a certificate showcasing your knowledge gained from the course.</p> <div class="course-certificate__image-container"> <img class="course-certificate__certificate-image" alt="Sample certificate" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/52nu8qc7cfcn7vrftr7ttceqt"> <div> <h3 class="course-certificate__detail-list-heading"> <div class="learning-logo"> <icon class="learning-logo__inbug onload" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4zqr0f9jf98vi2nkijyc3bex2"></icon> <span class="learning-logo__text learning-logo__text--show-on-mobile" aria-hidden="true">Learning</span> <span class="sr-only">LinkedIn Learning</span> </div> <span>Certificate of Completion</span> </h3> <ul> <li class="course-certificate__detail-list-item"> <div class="course-certificate__detail-list-item-icon-wrapper"><icon data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5lqa4dj5v9gp6yjh6s6iwtdbb"></icon></div> <p class="course-certificate__detail-list-item-text">Showcase on your LinkedIn profile under “Licenses and Certificate” section</p> </li> <li class="course-certificate__detail-list-item"> <div class="course-certificate__detail-list-item-icon-wrapper"><icon data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5lqa4dj5v9gp6yjh6s6iwtdbb"></icon></div> <p class="course-certificate__detail-list-item-text">Download or print out as PDF to share with others</p> </li> <li class="course-certificate__detail-list-item"> <div class="course-certificate__detail-list-item-icon-wrapper"><icon data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5lqa4dj5v9gp6yjh6s6iwtdbb"></icon></div> <p class="course-certificate__detail-list-item-text">Share as image online to demonstrate your skill</p> </li> </ul> </div> </div> </div> </section> <section class="core-section-container my-3 course-instructors"> <!----> <h2 class="core-section-container__title section-title"> Meet the instructor </h2> <!----> <div class="core-section-container__content break-words"> <ul class="course-instructors__list"> <li class="course-instructors__list-item"> <a href="https://at.linkedin.com/in/khandaniel?trk=learning-course_instructor" target="_self" data-tracking-control-name="learning-course_instructor" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-main-card flex flex-wrap py-2 pr-2 babybear:pr-0 base-main-card--link"> <!----> <img class="inline-block relative rounded-[50%] w-6 h-6 " data-delayed-url="https://media.licdn.com/dms/image/v2/C4D03AQGgnDtvONM9oQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1516506347352?e=2147483647&v=beta&t=kiHi6K5TYCk7vS0MwZPyQfs8_lNaugjdfv_N0csaD0U" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt="Click here to view Daniel Khan’s instructor page"> <div class="base-main-card__info self-center ml-1 flex-1 relative break-words papabear:min-w-0 mamabear:min-w-0 babybear:w-full"> <h3 class="base-main-card__title font-sans text-[18px] font-bold text-color-text overflow-hidden "> Daniel Khan </h3> <h4 class="base-main-card__subtitle body-text text-color-text overflow-hidden"> Member of the Management Board | KHAN Berufsbekleidung </h4> <!----> <!----> </div> <!----> </a> </li> </ul> </div> </section> <section class="core-section-container my-3 reviews-feed"> <!----> <h2 class="core-section-container__title section-title"> Learner reviews </h2> <!----> <div class="core-section-container__content break-words"> <div class="reviews-feed__ratings-summary"> <section class="ratings-summary"> <div class="ratings-summary__overall-rating"> <h3 class="ratings-summary__header"><span class="ratings-summary__rating-average">4.7</span> <span class="ratings-summary__rating-max">out of 5</span></h3> <figure class="ratings-summary__figure"> <span class="star-rating" role="img" aria-label="Rating: 4.7 out of 5 stars"> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/7dacecy4xq1otzk8pae2g0hxd"></icon> </span> </span> <figcaption class="ratings-summary__ratings-total">73 ratings</figcaption> </figure> </div> <div class="ratings-summary__breakdown"> <div class="ratings-summary__disclaimer"> <div class="tooltip"> <button class="tooltip__trigger ratings-summary__disclaimer-trigger" data-tracking-control-name="toggle_disclaimer" type="button"> <icon class="ratings-summary__disclaimer-icon" data-svg-class-name="ratings-summary__disclaimer-icon-svg" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/g8uts9v3k83n9e3iyvcxit0k"> </icon> <span class="ratings-summary__disclaimer-text">How are ratings calculated?</span> </button> <span role="tooltip" class="tooltip__popup" aria-hidden="true"> The overall rating is calculated using the average of submitted ratings. Ratings and reviews can only be submitted when non-anonymous learners complete at least 40% of the course. This helps us avoid fake reviews and spam. </span> </div> </div> <ul> <li> <figure class="ratings-summary__rating-count"> <figcaption class="ratings-summary__rating-count-label"> 5 star </figcaption> <progress class="ratings-summary__progress-bar" max="73" value="58" aria-valuemin="0" aria-valuenow="58" aria-valuemax="73"> Current value: 58 </progress> <span class="ratings-summary__rating-count-percent"> 79% </span> </figure> </li> <li> <figure class="ratings-summary__rating-count"> <figcaption class="ratings-summary__rating-count-label"> 4 star </figcaption> <progress class="ratings-summary__progress-bar" max="73" value="11" aria-valuemin="0" aria-valuenow="11" aria-valuemax="73"> Current value: 11 </progress> <span class="ratings-summary__rating-count-percent"> 15% </span> </figure> </li> <li> <figure class="ratings-summary__rating-count"> <figcaption class="ratings-summary__rating-count-label"> 3 star </figcaption> <progress class="ratings-summary__progress-bar" max="73" value="3" aria-valuemin="0" aria-valuenow="3" aria-valuemax="73"> Current value: 3 </progress> <span class="ratings-summary__rating-count-percent"> 4% </span> </figure> </li> <li> <figure class="ratings-summary__rating-count"> <figcaption class="ratings-summary__rating-count-label"> 2 star </figcaption> <progress class="ratings-summary__progress-bar" max="73" value="1" aria-valuemin="0" aria-valuenow="1" aria-valuemax="73"> Current value: 1 </progress> <span class="ratings-summary__rating-count-percent"> 1% </span> </figure> </li> <li> <figure class="ratings-summary__rating-count"> <figcaption class="ratings-summary__rating-count-label"> 1 star </figcaption> <progress class="ratings-summary__progress-bar" max="73" value="0" aria-valuemin="0" aria-valuenow="0" aria-valuemax="73"> Current value: 0 </progress> <span class="ratings-summary__rating-count-percent"> 0% </span> </figure> </li> </ul> </div> </section> </div> <ul class="reviews-feed__reviews-list"> <li class="reviews-feed__reviews-list-item"> <div class="review-card"> <div class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-main-card flex flex-wrap py-2 pr-2 babybear:pr-0 base-main-card--link review-card__entity"> <a class="base-card__full-link absolute top-0 right-0 bottom-0 left-0 p-0 z-[2]" href="https://lk.linkedin.com/in/sanuda-jayathilake-24a0621ba?trk=learning-course" data-tracking-control-name="learning-course" data-tracking-will-navigate> <span class="sr-only"> Sanuda Jayathilake <!----> </span> </a> <img class="inline-block relative rounded-[50%] w-6 h-6 " data-delayed-url="https://media.licdn.com/dms/image/v2/C5603AQGov9OIDxeHCg/profile-displayphoto-shrink_100_100/profile-displayphoto-shrink_100_100/0/1602937827927?e=2147483647&v=beta&t=ERXk6mjIfQBhuzOc9E8VQr2mhpT5X42MM9UwDnS4xfk" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt="Sanuda Jayathilake"> <div class="base-main-card__info self-center ml-1 flex-1 relative break-words papabear:min-w-0 mamabear:min-w-0 babybear:w-full"> <h3 class="base-main-card__title font-sans text-[18px] font-bold text-color-text overflow-hidden "> Sanuda Jayathilake <!----> </h3> <h4 class="base-main-card__subtitle body-text text-color-text overflow-hidden"> -- </h4> <!----> <div class="body-text text-color-text-low-emphasis base-main-card__metadata"> <div class="review-card__content"> <div class="review-card__centered-row"> <div class="review-card__star-container"> <span class="star-rating" role="img" aria-label="Rating: 5 out of 5 stars"> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> </span> </div> <span class="review-card__rating"> 5/5 </span> <span class="review-card__date"> October 8, 2024 </span> </div> <div class="review-card__text"> I recently completed Daniel Khan's Node.js Microservices course on LinkedIn Learning, and it was a fantastic experience! The course was well-structured and perfectly balanced between theory and practical examples. Daniel's teaching style is clear, and he breaks down complex microservice architecture concepts into digestible pieces, making it easier to understand how Node.js fits into the microservices ecosystem. </div> <div class="review-card__centered-row review-card__actions"> <a class="review-card__centered-row review-card__action-button" aria-label="Sanuda Jayathilake’s comment is helpful" data-tracking-control-name="learning-course_review-card-helpful-button" data-tracking-will-navigate href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_review-card-helpful-button" rel="nofollow"> <icon class="review-card__centered-row review-card__action-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5ptx189gjbxrh9wf3ncsehms9" data-svg-class-name="review-card__like-icon"></icon> Helpful </a> <span class="review-card__dot-delimiter">·</span> <a class="review-card__centered-row review-card__action-button" aria-label="Report Sanuda Jayathilake’s comment" data-tracking-control-name="learning-course_review-card-report-button" data-tracking-will-navigate href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_review-card-report-button" rel="nofollow"> <icon class="review-card__centered-row review-card__action-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/d04ze1wt0ev8ck8e4ovqk762o" data-svg-class-name="review-card__flag-icon"></icon> Report </a> </div> </div> </div> </div> <!----> </div> </div> </li> <li class="reviews-feed__reviews-list-item"> <div class="review-card"> <div class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-main-card flex flex-wrap py-2 pr-2 babybear:pr-0 base-main-card--link review-card__entity"> <a class="base-card__full-link absolute top-0 right-0 bottom-0 left-0 p-0 z-[2]" href="https://lk.linkedin.com/in/raveen-lakshitha-6733a6185?trk=learning-course" data-tracking-control-name="learning-course" data-tracking-will-navigate> <span class="sr-only"> Raveen Lakshitha <!----> </span> </a> <img class="inline-block relative rounded-[50%] w-6 h-6 " data-delayed-url="https://media.licdn.com/dms/image/v2/D5603AQGqBDmlI1WDsw/profile-displayphoto-shrink_100_100/profile-displayphoto-shrink_100_100/0/1715608609746?e=2147483647&v=beta&t=RGLX7vHX8v7dowloTFh2wr9k9sYtW9bs95hWLemrWH8" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt="Raveen Lakshitha"> <div class="base-main-card__info self-center ml-1 flex-1 relative break-words papabear:min-w-0 mamabear:min-w-0 babybear:w-full"> <h3 class="base-main-card__title font-sans text-[18px] font-bold text-color-text overflow-hidden "> Raveen Lakshitha <!----> </h3> <h4 class="base-main-card__subtitle body-text text-color-text overflow-hidden"> Trainee Software Engineer </h4> <!----> <div class="body-text text-color-text-low-emphasis base-main-card__metadata"> <div class="review-card__content"> <div class="review-card__centered-row"> <div class="review-card__star-container"> <span class="star-rating" role="img" aria-label="Rating: 5 out of 5 stars"> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> </span> </div> <span class="review-card__rating"> 5/5 </span> <span class="review-card__date"> May 12, 2024 </span> </div> <div class="review-card__text"> Yes </div> <div class="review-card__centered-row review-card__actions"> <a class="review-card__centered-row review-card__action-button" aria-label="Raveen Lakshitha’s comment is helpful" data-tracking-control-name="learning-course_review-card-helpful-button" data-tracking-will-navigate href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_review-card-helpful-button" rel="nofollow"> <icon class="review-card__centered-row review-card__action-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5ptx189gjbxrh9wf3ncsehms9" data-svg-class-name="review-card__like-icon"></icon> Helpful </a> <span class="review-card__dot-delimiter">·</span> <a class="review-card__centered-row review-card__action-button" aria-label="Report Raveen Lakshitha’s comment" data-tracking-control-name="learning-course_review-card-report-button" data-tracking-will-navigate href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_review-card-report-button" rel="nofollow"> <icon class="review-card__centered-row review-card__action-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/d04ze1wt0ev8ck8e4ovqk762o" data-svg-class-name="review-card__flag-icon"></icon> Report </a> </div> </div> </div> </div> <!----> </div> </div> </li> <li class="reviews-feed__reviews-list-item"> <div class="review-card"> <div class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-main-card flex flex-wrap py-2 pr-2 babybear:pr-0 base-main-card--link review-card__entity"> <a class="base-card__full-link absolute top-0 right-0 bottom-0 left-0 p-0 z-[2]" href="https://in.linkedin.com/in/debanjan05051993?trk=learning-course" data-tracking-control-name="learning-course" data-tracking-will-navigate> <span class="sr-only"> Debanjan Goswami <!----> </span> </a> <img class="inline-block relative rounded-[50%] w-6 h-6 " data-delayed-url="https://media.licdn.com/dms/image/v2/D5603AQE1kVXN4yvpkg/profile-displayphoto-shrink_100_100/profile-displayphoto-shrink_100_100/0/1724301627101?e=2147483647&v=beta&t=CwfcHJV_ygCrxU7NQrRVJ8PsW7URoTyWAkiMFRuvDlQ" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt="Debanjan Goswami"> <div class="base-main-card__info self-center ml-1 flex-1 relative break-words papabear:min-w-0 mamabear:min-w-0 babybear:w-full"> <h3 class="base-main-card__title font-sans text-[18px] font-bold text-color-text overflow-hidden "> Debanjan Goswami <!----> </h3> <h4 class="base-main-card__subtitle body-text text-color-text overflow-hidden"> Software engineer at Berkadia | Full Stack developer | React | Node | Javascript/Typescript | Mongodb | microservices | AWS </h4> <!----> <div class="body-text text-color-text-low-emphasis base-main-card__metadata"> <div class="review-card__content"> <div class="review-card__centered-row"> <div class="review-card__star-container"> <span class="star-rating" role="img" aria-label="Rating: 4 out of 5 stars"> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cg0ud3t24av7pe8eamnp39hfq"></icon> </span> <span class="star-rating__icon-container" aria-hidden="true"> <icon class="star-rating__icon star-rating__icon--small " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/e0hq4l058yoqerjsrssp5pbr0"></icon> </span> </span> </div> <span class="review-card__rating"> 4/5 </span> <span class="review-card__date"> February 19, 2024 </span> </div> <div class="review-card__text"> it is good </div> <div class="review-card__centered-row review-card__actions"> <a class="review-card__centered-row review-card__action-button" aria-label="Debanjan Goswami’s comment is helpful" data-tracking-control-name="learning-course_review-card-helpful-button" data-tracking-will-navigate href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_review-card-helpful-button" rel="nofollow"> <icon class="review-card__centered-row review-card__action-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5ptx189gjbxrh9wf3ncsehms9" data-svg-class-name="review-card__like-icon"></icon> Helpful </a> <span class="review-card__dot-delimiter">·</span> <a class="review-card__centered-row review-card__action-button" aria-label="Report Debanjan Goswami’s comment" data-tracking-control-name="learning-course_review-card-report-button" data-tracking-will-navigate href="https://www.linkedin.com/learning-login/?redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Flearning%2Fnode-js-microservices-22685072%3Ftrk%3Dlearning-topics_learning-search-card_search-card%26trk%3Dlearning-topics_learning-search-card_search-card&trk=learning-course_review-card-report-button" rel="nofollow"> <icon class="review-card__centered-row review-card__action-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/d04ze1wt0ev8ck8e4ovqk762o" data-svg-class-name="review-card__flag-icon"></icon> Report </a> </div> </div> </div> </div> <!----> </div> </div> </li> </ul> </div> </section> </div> </section> <section class="right-rail papabear:w-right-rail-width papabear:ml-column-gutter mamabear:max-w-[790px] mamabear:px-mobile-container-padding babybear:max-w-[790px] babybear:px-mobile-container-padding"> <section class="table-of-contents mb-4 table-of-contents--with-max-height"> <h2 class="table-of-contents__header"> Contents </h2> <ul class="table-of-contents__list"> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> Introduction <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> Introduction <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/understanding-how-microservices-are-built-and-used?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <icon class="table-of-contents__item-status table-of-contents__item-status--unlocked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5jwhkytplzxiejvhzfu0t7m8l" data-svg-class-name="table-of-contents__item-status-svg--unlocked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Understanding how microservices are built and used </div> <div class="table-of-contents__item-duration"> 46s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/what-you-should-know?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <icon class="table-of-contents__item-status table-of-contents__item-status--unlocked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5jwhkytplzxiejvhzfu0t7m8l" data-svg-class-name="table-of-contents__item-status-svg--unlocked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> What you should know </div> <div class="table-of-contents__item-duration"> 1m 2s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 1. Prepare Your Development Environment <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 1. Prepare Your Development Environment <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/installing-git-node-js-and-docker?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <icon class="table-of-contents__item-status table-of-contents__item-status--unlocked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5jwhkytplzxiejvhzfu0t7m8l" data-svg-class-name="table-of-contents__item-status-svg--unlocked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Installing Git, Node.js, and Docker </div> <div class="table-of-contents__item-duration"> 1m 18s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/getting-the-exercise-files-from-github?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Getting the exercise files from GitHub </div> <div class="table-of-contents__item-duration"> 1m 48s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-visual-studio-code-eslint-and-prettier?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Setting up Visual Studio Code, ESLint, and Prettier </div> <div class="table-of-contents__item-duration"> 2m 51s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/launching-mongodb-redis-and-jaeger-in-docker?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Launching MongoDB, Redis, and Jaeger in Docker </div> <div class="table-of-contents__item-duration"> 3m 53s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/installing-mongodb-compass?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Installing MongoDB Compass </div> <div class="table-of-contents__item-duration"> 59s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 2. Planning Your Microservice Migration <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 2. Planning Your Microservice Migration <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-and-exploring-your-sample-application?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <icon class="table-of-contents__item-status table-of-contents__item-status--unlocked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5jwhkytplzxiejvhzfu0t7m8l" data-svg-class-name="table-of-contents__item-status-svg--unlocked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Setting up and exploring your sample application </div> <div class="table-of-contents__item-duration"> 5m 25s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/understanding-the-sample-apps-code?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Understanding the sample apps code </div> <div class="table-of-contents__item-duration"> 5m 37s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/getting-insights-with-opentelemetry-and-jaeger?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Getting insights with OpenTelemetry and Jaeger </div> <div class="table-of-contents__item-duration"> 3m 54s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/setting-your-mission?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Setting your mission </div> <div class="table-of-contents__item-duration"> 1m 49s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 3. Your First Service: The Catalog Service <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 3. Your First Service: The Catalog Service <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <icon class="table-of-contents__item-status table-of-contents__item-status--unlocked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5jwhkytplzxiejvhzfu0t7m8l" data-svg-class-name="table-of-contents__item-status-svg--unlocked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> What's your goal for this chapter? </div> <div class="table-of-contents__item-duration"> 2m 19s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-service?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Creating the service </div> <div class="table-of-contents__item-duration"> 6m 35s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/designing-a-rest-api-for-the-catalog-service?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Designing a REST API for the catalog service </div> <div class="table-of-contents__item-duration"> 3m 57s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/adding-business-logic-and-database-access?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Adding business logic and database access </div> <div class="table-of-contents__item-duration"> 5m 15s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/creating-your-first-rest-endpoint?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Creating your first REST endpoint </div> <div class="table-of-contents__item-duration"> 4m 3s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/completing-the-api?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Completing the API </div> <div class="table-of-contents__item-duration"> 6m 11s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/testing-rest-endpoints?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Testing REST endpoints </div> <div class="table-of-contents__item-duration"> 5m 36s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 4. Creating a Service Registry <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 4. Creating a Service Registry <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter-22664578?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <icon class="table-of-contents__item-status table-of-contents__item-status--unlocked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5jwhkytplzxiejvhzfu0t7m8l" data-svg-class-name="table-of-contents__item-status-svg--unlocked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> What's your goal for this chapter? </div> <div class="table-of-contents__item-duration"> 1m 59s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-the-registry?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Setting up the registry </div> <div class="table-of-contents__item-duration"> 5m 6s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/registering-services?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Registering services </div> <div class="table-of-contents__item-duration"> 6m 55s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/creating-and-testing-the-registration-route?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Creating and testing the registration route </div> <div class="table-of-contents__item-duration"> 5m 9s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/unregistering-services?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Unregistering services </div> <div class="table-of-contents__item-duration"> 9m 27s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/querying-the-registry?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Querying the registry </div> <div class="table-of-contents__item-duration"> 8m 23s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/removing-expired-services?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Removing expired services </div> <div class="table-of-contents__item-duration"> 7m 18s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/registering-on-service-on-start?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Registering on service on start </div> <div class="table-of-contents__item-duration"> 5m 9s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/adding-heartbeat-and-unregistering-on-shutdown?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Adding heartbeat and unregistering on shutdown </div> <div class="table-of-contents__item-duration"> 4m 53s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 5. Using Services <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 5. Using Services <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter-22664580?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> What's your goal for this chapter? </div> <div class="table-of-contents__item-duration"> 29s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-service-client?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Creating the service client </div> <div class="table-of-contents__item-duration"> 9m 35s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/using-the-catalog-service?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Using the catalog service </div> <div class="table-of-contents__item-duration"> 8m 11s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/testing-the-catalog-service?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Testing the catalog service </div> <div class="table-of-contents__item-duration"> 3m 1s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/sanitizing-data?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Sanitizing data </div> <div class="table-of-contents__item-duration"> 5m 36s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-cartservice?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Creating the CartService </div> <div class="table-of-contents__item-duration"> 4m 56s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/service-monitoring-with-opentelemetry-and-jaeger?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Service monitoring with OpenTelemetry and Jaeger </div> <div class="table-of-contents__item-duration"> 3m 29s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 6. Authenticating APIs <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 6. Authenticating APIs <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/api-authentication-with-jwt?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> API authentication with JWT </div> <div class="table-of-contents__item-duration"> 3m 42s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/creating-the-user-service?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Creating the user service </div> <div class="table-of-contents__item-duration"> 3m 42s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/add-jwt-tokens-to-the-user-service?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Add JWT tokens to the user service </div> <div class="table-of-contents__item-duration"> 5m 9s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/make-the-front-end-use-jwt-authentication?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Make the front end use JWT authentication </div> <div class="table-of-contents__item-duration"> 7m 50s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/using-bearer-headers?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Using bearer headers </div> <div class="table-of-contents__item-duration"> 8m 47s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/protecting-endpoints-with-jwt?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Protecting endpoints with JWT </div> <div class="table-of-contents__item-duration"> 4m 48s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 7. Adding Fault Tolerance and Resilience <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> 7. Adding Fault Tolerance and Resilience <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/what-s-your-goal-for-this-chapter-22663546?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> What's your goal for this chapter? </div> <div class="table-of-contents__item-duration"> 2m 27s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/chaos-testing?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Chaos testing </div> <div class="table-of-contents__item-duration"> 4m 18s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/adding-caching-to-reduce-load-and-bridge-outages?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Adding caching to reduce load and bridge outages </div> <div class="table-of-contents__item-duration"> 2m 40s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/using-queues-for-decoupling?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Using queues for decoupling </div> <div class="table-of-contents__item-duration"> 1m 43s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/installing-up-rabbitmq?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Installing up RabbitMQ </div> <div class="table-of-contents__item-duration"> 1m 24s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/setting-up-the-order-service?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Setting up the order service </div> <div class="table-of-contents__item-duration"> 3m 2s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/producing-orders?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Producing orders </div> <div class="table-of-contents__item-duration"> 6m 47s </div> </div> </a> </li> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/consuming-orders?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Consuming orders </div> <div class="table-of-contents__item-duration"> 9m 3s </div> </div> </a> </li> </ul> <!----> </div> </li> <li class="toc-section"> <div class="show-more-less"> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> Conclusion <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" data-tracking-control-name="learning-course_toc-section_show_more"> Conclusion <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> <ul data-max-num-to-show="0" class="show-more-less__list show-more-less__list--hide-after-0" data-impression-id="learning-course_toc-section_show-more-less"> <li class="toc-item"> <a data-tracking-control-name="learning-course_tocItem" data-tracking-will-navigate href="https://www.linkedin.com/learning/node-js-microservices-22685072/next-steps?autoplay=true&trk=learning-course_tocItem" class="toc-item__link" aria-current="false"> <span class="a11y-text">(Locked)</span> <icon class="table-of-contents__item-status table-of-contents__item-status--locked" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cfu0devb5o77ym5x8vv0oilfz" data-svg-class-name="table-of-contents__item-status-svg--locked"></icon> <div class="table-of-contents__item-details"> <div class="table-of-contents__item-title"> Next steps </div> <div class="table-of-contents__item-duration"> 45s </div> </div> </a> </li> </ul> <!----> </div> </li> </ul> </section> <section class="aside-section-container mb-4 subscription-value-props-aside-section"> <h2 class="aside-section-container__title section-title"> What’s included </h2> <!----> <div class="aside-section-container__content break-words"> <ul> <!----> <li class="subscription-value-props-aside-section__list-item"> <span class="subscription-value-props-aside-section__value-prop-label">Test your knowledge</span> <span class="subscription-value-props-aside-section__value-prop-sublabel">8 quizzes</span> </li> <li class="subscription-value-props-aside-section__list-item"> <span class="subscription-value-props-aside-section__value-prop-label">Learn on the go</span> <span class="subscription-value-props-aside-section__value-prop-sublabel">Access on tablet and phone</span> </li> <!----> </ul> </div> </section> <section class="aside-section-container mb-4 similar-courses-aside-section"> <h2 class="aside-section-container__title section-title"> Similar courses </h2> <!----> <div class="aside-section-container__content break-words"> <ul> <li> <!----> <a href="https://www.linkedin.com/learning/learning-full-stack-javascript-development-mongodb-node-and-react-15581237?trk=learning-course_similar-courses" target="_self" data-tracking-control-name="learning-course_similar-courses" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 hover:show-play-button focus:show-play-button base-aside-card--link aside-learning-course-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative h-[54px] w-[95px] "> <img class="base-aside-card__media-element w-[100px] h-full object-cover" alt data-delayed-url="https://media.licdn.com/dms/image/v2/C560DAQGx_lsYcLsXOA/learning-public-crop_144_256/learning-public-crop_144_256/0/1671474208254?e=2147483647&v=beta&t=Tv6h9flc4KOf9PXPa4FfDtYAom85TXRJ6aN1F2W2Jqs"> <div class="aside-learning-course-card__duration duration">3h 35m</div> <icon class="base-aside-card__play-button w-auto play-button overlay-center" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/9n9raq7fmdu241tpsxwodsmcd" data-svg-class-name="base-aside-card__play-button-svg"></icon> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Learning Full-Stack JavaScript Development: MongoDB, Node, and React <!----> </h3> <!----> <!----> <!----> <!----> <!----> </div> <!----> </a> </li> <li> <!----> <a href="https://www.linkedin.com/learning/building-restful-apis-with-node-js-and-express-16069959?trk=learning-course_similar-courses" target="_self" data-tracking-control-name="learning-course_similar-courses" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 hover:show-play-button focus:show-play-button base-aside-card--link aside-learning-course-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative h-[54px] w-[95px] "> <img class="base-aside-card__media-element w-[100px] h-full object-cover" alt data-delayed-url="https://media.licdn.com/dms/image/v2/C560DAQFBQs89Kb83rg/learning-public-crop_144_256/learning-public-crop_144_256/0/1668018324768?e=2147483647&v=beta&t=FZUnoHkgPmZOt-OQtKOw_i7JS5Ocl5x4NY-w2hK9WDk"> <div class="aside-learning-course-card__duration duration">1h 17m</div> <icon class="base-aside-card__play-button w-auto play-button overlay-center" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/9n9raq7fmdu241tpsxwodsmcd" data-svg-class-name="base-aside-card__play-button-svg"></icon> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Building RESTful APIs with Node.js and Express <!----> </h3> <!----> <!----> <!----> <!----> <!----> </div> <!----> </a> </li> <li> <!----> <a href="https://www.linkedin.com/learning/node-js-web-servers-tests-and-deployment?trk=learning-course_similar-courses" target="_self" data-tracking-control-name="learning-course_similar-courses" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 hover:show-play-button focus:show-play-button base-aside-card--link aside-learning-course-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative h-[54px] w-[95px] "> <img class="base-aside-card__media-element w-[100px] h-full object-cover" alt data-delayed-url="https://media.licdn.com/dms/image/v2/C4E0DAQGzbpxDbiFDCQ/learning-public-crop_144_256/learning-public-crop_144_256/0/1660760035765?e=2147483647&v=beta&t=PFL357-UXg2V_V6piOzHwQ3dsoGe27-CUSm9nPuGimg"> <div class="aside-learning-course-card__duration duration">1h 19m</div> <icon class="base-aside-card__play-button w-auto play-button overlay-center" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/9n9raq7fmdu241tpsxwodsmcd" data-svg-class-name="base-aside-card__play-button-svg"></icon> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Node.js: Web Servers, Tests, and Deployment <!----> </h3> <!----> <!----> <!----> <!----> <!----> </div> <!----> </a> </li> </ul> </div> </section> <section class="aside-section-container mb-4"> <h2 class="aside-section-container__title section-title"> Download courses </h2> <!----> <div class="aside-section-container__content break-words"> <p>Use your iOS or Android LinkedIn Learning app, and watch courses on your mobile device without an internet connection.</p> <div class="app-links-aside-section__link-container"> <a class="app-links-aside-section__link" href="https://itunes.apple.com/app/apple-store/id1084807225?ls=1&pt=10746&mt=8&ct=learning_course_app_links&trk=learning-course_apple-app-store" data-tracking-control-name="learning-course_apple-app-store" data-tracking-will-navigate rel="noopener noreferrer" target="_blank"> <img alt="Download on the App Store" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/emczv26hz24woii2j4aleyry" height="42px" width="142px"> </a> <a class="app-links-aside-section__link" href="https://play.google.com/store/apps/details?id=com.linkedin.android.learning&referrer=utm_source%3Dlinkedinlearning%26utm_medium%3DmobileWeb%26utm_campaign%3Dlearning_guest&ct=learning_course_app_links&trk=learning-course_google-play-store" data-tracking-control-name="learning-course_google-play-store" data-tracking-will-navigate rel="noopener noreferrer" target="_blank"> <img alt="Get it on Google Play" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/535kqf5rsexfx0lucb3t6palb" height="42px" width="142px"> </a> </div> </div> </section> </section> </main> <div class="pre-footer "> <section class="core-section-container my-3 price-disclaimer"> <!----> <!----> <!----> <div class="core-section-container__content break-words"> <p class="price-disclaimer__copy"> <sup class="price-disclaimer__copy--sup">*</sup>Price may change based on profile and billing country information entered during Sign In or Registration </p> </div> </section> <section class="tw-linkster bg-cool-gray-20 browse-map" data-impression-id="learning-course_linkster" data-js-module-id="linkster"> <div class="max-w-screen-content-max-w w-full flex justify-between my-0 mx-auto mamabear:px-3 babybear:px-2 babybear:flex-col"> <div class="flex-1 w-1/2 pt-2 pr-4 pb-4 pl-0 babybear:pb-2 babybear:w-full babybear:border-b-1 babybear:border-solid babybear:border-color-border-low-emphasis babybear:last:border-b-0"> <h3 class="text-md font-bold text-color-text leading-open"> Explore Business Topics </h3> <ul class="my-1"> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/business-analysis-and-strategy?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Business Analysis and Strategy </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/business-software-and-tools?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Business Software and Tools </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/career-development-5?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Career Development </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/customer-service-3?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Customer Service </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/diversity-equity-and-inclusion-dei?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Diversity, Equity, and Inclusion (DEI) </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/finance-and-accounting?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Finance and Accounting </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/human-resources-3?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Human Resources </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/leadership-and-management?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Leadership and Management </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/marketing-2?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Marketing </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/professional-development?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Professional Development </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/project-management?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Project Management </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/sales-3?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Sales </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/small-business-and-entrepreneurship?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Small Business and Entrepreneurship </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/training-and-education?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Training and Education </a> </li> </ul> <a class="link tw-linkster-general-link" aria-label="See all business courses" href="https://www.linkedin.com/learning/topics/business?trk=learning-course_browsemap_general-link" data-tracking-control-name="learning-course_browsemap_general-link" data-tracking-will-navigate> See all </a> </div> <div class="flex-1 w-1/2 pt-2 pr-4 pb-4 pl-0 babybear:pb-2 babybear:w-full babybear:border-b-1 babybear:border-solid babybear:border-color-border-low-emphasis babybear:last:border-b-0"> <h3 class="text-md font-bold text-color-text leading-open"> Explore Creative Topics </h3> <ul class="my-1"> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/aec?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> AEC </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/animation-and-illustration?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Animation and Illustration </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/audio-and-music?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Audio and Music </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/graphic-design?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Graphic Design </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/motion-graphics-and-vfx?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Motion Graphics and VFX </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/photography-2?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Photography </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/product-and-manufacturing?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Product and Manufacturing </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/user-experience?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> User Experience </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/2015-54?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Video </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/visualization-and-real-time?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Visualization and Real-Time </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/web-design?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Web Design </a> </li> </ul> <a class="link tw-linkster-general-link" aria-label="See all creative courses" href="https://www.linkedin.com/learning/topics/creative?trk=learning-course_browsemap_general-link" data-tracking-control-name="learning-course_browsemap_general-link" data-tracking-will-navigate> See all </a> </div> <div class="flex-1 w-1/2 pt-2 pr-4 pb-4 pl-0 babybear:pb-2 babybear:w-full babybear:border-b-1 babybear:border-solid babybear:border-color-border-low-emphasis babybear:last:border-b-0"> <h3 class="text-md font-bold text-color-text leading-open"> Explore Technology Topics </h3> <ul class="my-1"> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/artificial-intelligence?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Artificial Intelligence (AI) </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/cloud-computing-5?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Cloud Computing </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/security-3?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Cybersecurity </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/data-science?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Data Science </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/database-management?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Database Management </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/devops?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> DevOps </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/hardware?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Hardware </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/it-help-desk-5?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> IT Help Desk </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/mobile-development?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Mobile Development </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/network-and-system-administration?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Network and System Administration </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/software-development?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Software Development </a> </li> <li class="tw-link-column-item"> <a class="link tw-linkster-link" href="https://www.linkedin.com/learning/topics/web-development?trk=learning-course_browsemap_link" data-js-module-id="link-column-link" data-tracking-control-name="learning-course_browsemap_link" data-tracking-will-navigate> Web Development </a> </li> </ul> <a class="link tw-linkster-general-link" aria-label="See all technology courses" href="https://www.linkedin.com/learning/topics/technology?trk=learning-course_browsemap_general-link" data-tracking-control-name="learning-course_browsemap_general-link" data-tracking-will-navigate> See all </a> </div> </div> </section> </div> <footer class="li-footer bg-transparent w-full "> <ul class="li-footer__list flex flex-wrap flex-row items-start justify-start w-full h-auto min-h-[50px] my-[0px] mx-auto py-3 px-2 papabear:w-[1128px] papabear:p-0"> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <span class="sr-only">LinkedIn</span> <icon class="li-footer__copy-logo text-color-logo-brand-alt inline-block self-center h-[14px] w-[56px] mr-1" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/e12h2cd8ac580qen9qdd0qks8"></icon> <span class="li-footer__copy-text flex items-center">© 2024</span> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://about.linkedin.com?trk=d_learning_course_guest_footer-about" data-tracking-control-name="d_learning_course_guest_footer-about" data-tracking-will-navigate> About </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/accessibility?trk=d_learning_course_guest_footer-accessibility" data-tracking-control-name="d_learning_course_guest_footer-accessibility" data-tracking-will-navigate> Accessibility </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/user-agreement?trk=d_learning_course_guest_footer-user-agreement" data-tracking-control-name="d_learning_course_guest_footer-user-agreement" data-tracking-will-navigate> User Agreement </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/privacy-policy?trk=d_learning_course_guest_footer-privacy-policy" data-tracking-control-name="d_learning_course_guest_footer-privacy-policy" data-tracking-will-navigate> Privacy Policy </a> </li> <!----> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/cookie-policy?trk=d_learning_course_guest_footer-cookie-policy" data-tracking-control-name="d_learning_course_guest_footer-cookie-policy" data-tracking-will-navigate> Cookie Policy </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/copyright-policy?trk=d_learning_course_guest_footer-copyright-policy" data-tracking-control-name="d_learning_course_guest_footer-copyright-policy" data-tracking-will-navigate> Copyright Policy </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://brand.linkedin.com/policies?trk=d_learning_course_guest_footer-brand-policy" data-tracking-control-name="d_learning_course_guest_footer-brand-policy" data-tracking-will-navigate> Brand Policy </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/psettings/guest-controls?trk=d_learning_course_guest_footer-guest-controls" data-tracking-control-name="d_learning_course_guest_footer-guest-controls" data-tracking-will-navigate> Guest Controls </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/professional-community-policies?trk=d_learning_course_guest_footer-community-guide" data-tracking-control-name="d_learning_course_guest_footer-community-guide" data-tracking-will-navigate> Community Guidelines </a> </li> <!----> <li class="li-footer__item font-sans text-xs text-color-text-low-emphasis flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <div class="collapsible-dropdown collapsible-dropdown--footer collapsible-dropdown--up flex items-center relative hyphens-auto language-selector z-2"> <!----> <ul class="collapsible-dropdown__list hidden container-raised absolute w-auto overflow-y-auto flex-col items-stretch z-1 bottom-[100%] top-auto" role="menu" tabindex="-1"> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="العربية (Arabic)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ar_AE" data-locale="ar_AE" role="menuitem" lang="ar_AE"> العربية (Arabic) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="বাংলা (Bangla)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-bn_IN" data-locale="bn_IN" role="menuitem" lang="bn_IN"> বাংলা (Bangla) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Čeština (Czech)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-cs_CZ" data-locale="cs_CZ" role="menuitem" lang="cs_CZ"> Čeština (Czech) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Dansk (Danish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-da_DK" data-locale="da_DK" role="menuitem" lang="da_DK"> Dansk (Danish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Deutsch (German)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-de_DE" data-locale="de_DE" role="menuitem" lang="de_DE"> Deutsch (German) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Ελληνικά (Greek)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-el_GR" data-locale="el_GR" role="menuitem" lang="el_GR"> Ελληνικά (Greek) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="English (English) selected" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link--selected" data-tracking-control-name="language-selector-en_US" data-locale="en_US" role="menuitem" lang="en_US"> <strong>English (English)</strong> </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Español (Spanish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-es_ES" data-locale="es_ES" role="menuitem" lang="es_ES"> Español (Spanish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="فارسی (Persian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-fa_IR" data-locale="fa_IR" role="menuitem" lang="fa_IR"> فارسی (Persian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Suomi (Finnish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-fi_FI" data-locale="fi_FI" role="menuitem" lang="fi_FI"> Suomi (Finnish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Français (French)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-fr_FR" data-locale="fr_FR" role="menuitem" lang="fr_FR"> Français (French) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="हिंदी (Hindi)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-hi_IN" data-locale="hi_IN" role="menuitem" lang="hi_IN"> हिंदी (Hindi) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Magyar (Hungarian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-hu_HU" data-locale="hu_HU" role="menuitem" lang="hu_HU"> Magyar (Hungarian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Bahasa Indonesia (Indonesian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-in_ID" data-locale="in_ID" role="menuitem" lang="in_ID"> Bahasa Indonesia (Indonesian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Italiano (Italian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-it_IT" data-locale="it_IT" role="menuitem" lang="it_IT"> Italiano (Italian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="עברית (Hebrew)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-iw_IL" data-locale="iw_IL" role="menuitem" lang="iw_IL"> עברית (Hebrew) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="日本語 (Japanese)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ja_JP" data-locale="ja_JP" role="menuitem" lang="ja_JP"> 日本語 (Japanese) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="한국어 (Korean)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ko_KR" data-locale="ko_KR" role="menuitem" lang="ko_KR"> 한국어 (Korean) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="मराठी (Marathi)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-mr_IN" data-locale="mr_IN" role="menuitem" lang="mr_IN"> मराठी (Marathi) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Bahasa Malaysia (Malay)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ms_MY" data-locale="ms_MY" role="menuitem" lang="ms_MY"> Bahasa Malaysia (Malay) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Nederlands (Dutch)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-nl_NL" data-locale="nl_NL" role="menuitem" lang="nl_NL"> Nederlands (Dutch) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Norsk (Norwegian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-no_NO" data-locale="no_NO" role="menuitem" lang="no_NO"> Norsk (Norwegian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="ਪੰਜਾਬੀ (Punjabi)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-pa_IN" data-locale="pa_IN" role="menuitem" lang="pa_IN"> ਪੰਜਾਬੀ (Punjabi) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Polski (Polish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-pl_PL" data-locale="pl_PL" role="menuitem" lang="pl_PL"> Polski (Polish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Português (Portuguese)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-pt_BR" data-locale="pt_BR" role="menuitem" lang="pt_BR"> Português (Portuguese) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Română (Romanian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ro_RO" data-locale="ro_RO" role="menuitem" lang="ro_RO"> Română (Romanian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Русский (Russian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ru_RU" data-locale="ru_RU" role="menuitem" lang="ru_RU"> Русский (Russian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Svenska (Swedish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-sv_SE" data-locale="sv_SE" role="menuitem" lang="sv_SE"> Svenska (Swedish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="తెలుగు (Telugu)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-te_IN" data-locale="te_IN" role="menuitem" lang="te_IN"> తెలుగు (Telugu) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="ภาษาไทย (Thai)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-th_TH" data-locale="th_TH" role="menuitem" lang="th_TH"> ภาษาไทย (Thai) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Tagalog (Tagalog)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-tl_PH" data-locale="tl_PH" role="menuitem" lang="tl_PH"> Tagalog (Tagalog) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Türkçe (Turkish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-tr_TR" data-locale="tr_TR" role="menuitem" lang="tr_TR"> Türkçe (Turkish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Українська (Ukrainian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-uk_UA" data-locale="uk_UA" role="menuitem" lang="uk_UA"> Українська (Ukrainian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Tiếng Việt (Vietnamese)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-vi_VN" data-locale="vi_VN" role="menuitem" lang="vi_VN"> Tiếng Việt (Vietnamese) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="简体中文 (Chinese (Simplified))" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-zh_CN" data-locale="zh_CN" role="menuitem" lang="zh_CN"> 简体中文 (Chinese (Simplified)) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="正體中文 (Chinese (Traditional))" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-zh_TW" data-locale="zh_TW" role="menuitem" lang="zh_TW"> 正體中文 (Chinese (Traditional)) </button> </li> <!----> </ul> <button class="language-selector__button select-none relative pr-2 font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover hover:cursor-pointer focus:text-color-link-focus focus:outline-dotted focus:outline-1" aria-expanded="false" data-tracking-control-name="footer-lang-dropdown_trigger"> <span class="language-selector__label-text mr-0.5 break-words"> Language </span> <icon class="language-selector__label-chevron w-2 h-2 absolute top-0 right-0" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> </div> </li> </ul> <!----> </footer> <script src="https://static.licdn.com/aero-v1/sc/h/eh08muqvrde4h3hc6koyij5ti" async></script> <!----> <script src="https://static.licdn.com/aero-v1/sc/h/awgwgu3fg49q0tcvd24ku87qq" async defer></script> <script data-delayed-url="https://static.licdn.com/aero-v1/sc/h/81wy0f4hfrhoilx9eqdwg202z" data-module-id="media-player"></script> <code id="trackingData" style="display: none"><!--{"hashedCourseId":"miF/DGCHeWCPPUF939NURNGDh96GDqv6dzHv5A9qmjU=","urn":"urn:li:lyndaCourse:4403064","totalPrice":{"currencyCode":"HKD","amount":"299.99"}}--></code> <code id="alcOnlyData" style="display: none"><!--{"isAlcOnly":false,"canPurchaseCourse":true}--></code> </body> </html>