{"id":561,"date":"2021-09-17T16:45:59","date_gmt":"2021-09-17T06:45:59","guid":{"rendered":"https:\/\/www.infrasoft.com.au\/wp\/wordpress\/?p=561"},"modified":"2022-05-18T12:19:18","modified_gmt":"2022-05-18T02:19:18","slug":"ulinga-kafka-different-approach","status":"publish","type":"post","link":"https:\/\/www.infrasoft.com.au\/?p=561","title":{"rendered":"uLinga for Kafka &#8211; A Different Approach"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"561\" class=\"elementor elementor-561\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e1b594f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e1b594f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2072def\" data-id=\"2072def\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-108b126 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"108b126\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/09\/uLinga-for-Kafka-Article-Title-Graphic-01-1024x576.jpg\" class=\"attachment-large size-large wp-image-756\" alt=\"\" srcset=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/09\/uLinga-for-Kafka-Article-Title-Graphic-01-1024x576.jpg 1024w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/09\/uLinga-for-Kafka-Article-Title-Graphic-01-300x169.jpg 300w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/09\/uLinga-for-Kafka-Article-Title-Graphic-01-768x432.jpg 768w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/09\/uLinga-for-Kafka-Article-Title-Graphic-01-1536x864.jpg 1536w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/09\/uLinga-for-Kafka-Article-Title-Graphic-01-2048x1152.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6df9802 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6df9802\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-03032be\" data-id=\"03032be\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ed1ba3e elementor-widget elementor-widget-text-editor\" data-id=\"ed1ba3e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>Introduction<\/h3><div><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">There\u2019s been a lot of talk over the last few years about Kafka, but what is it, and how might it impact NonStop applications and data?<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">\u00a0 <\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">According to the Kafka Apache project, Kafka is \u201cthe most popular open-source stream-processing software for collecting, processing, storing and analyzing data at scale.\u201d<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">\u00a0 <\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">Kafka is used by thousands of companies, including 60% of the Fortune 100.<\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">\u00a0 <\/span><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: var( --e-global-typography-text-font-weight );\">Well known users in the finance space include Goldman Sachs, Rabobank, Barclays, Jack Henry and PayPal, and household names that use Kafka include Netflix, Oracle, LinkedIn and AirBnB.<\/span><\/div><p>\u00a0<\/p><p>These organizations use Kafka to manage \u201cstreams\u201d of data, which have become prevalent as internet usage massively boosts the amount of data being generated and needing to be processed.\u00a0 Kafka allows these huge volumes of data to be processed in real-time, via a combination of \u201cproducers\u201d and \u201cconsumers\u201d, which work with a Kafka \u201ccluster\u201d \u2013 the main data repository.<\/p><p>In the NonStop space it\u2019s important to understand Kafka, and how we might easily integrate our NonStop applications, and their valuable data, with the Kafka ecosystem.\u00a0 There are a few approaches that allow NonStop data to be streamed to Kafka, including ODBC\/JDBC, and the Striim product. This article will go into detail on a new product that achieves this goal in a highly performant and fault-tolerant manner.<\/p><h3>uLinga for Kafka &#8211; Overview<\/h3><p><a>uLinga for Kafka is the latest addition to Infrasoft\u2019s uLinga product range, a solution suite that has been used by large banks, telcos and manufacturers to provide reliable communications infrastructure for many years.\u00a0uLinga for Kafka brings the same performance, scalability and security and manageability to the Kafka space as users have successfully utilized within the other uLinga products.<\/a><\/p><p>uLinga for Kafka takes a unique approach to Kafka integration: it runs as a natively compiled Guardian process pair, and supports the Kafka communications protocols directly over TCP\/IP.\u00a0 This removes the need for Java libraries or intermediate databases, providing the best possible performance on NonStop.\u00a0 It also allows uLinga for Kafka<br \/>to directly communicate with the Kafka cluster, getting streamed data across as quickly and reliably as possible.<\/p><p>\u00a0<\/p><p>Other NonStop Kafka integration solutions require an interim application and\/or database, generally running on another platform.\u00a0 This can be less than ideal as that additional platform may not have the reliability of the NonStop, and could<br \/>introduce a single point of failure.\u00a0 It can also increase latency, in terms of getting the data into Kafka as quickly<br \/>as possible.<\/p><h3><b>uLinga for Kafka &#8211; Application Integration<\/b><\/h3><p>uLinga for Kafka supports the same access points available with other uLinga products to enable applications to stream their data to Kafka. These include Inter-Process Communication (IPC), Pathsend and HTTP\/REST.\u00a0 IPC and Pathsend interfaces allow NonStop applications to open uLinga for Kafka and send data via Guardian IPC, or via a Pathsend message.\u00a0 The HTTP\/REST interface allows applications on the NonStop or on any other platform, such as API gateways, to stream via HTTP to Kafka.\u00a0\u00a0 uLinga for Kafka also introduces a new access point which allows for Enscribe files to be monitored and read in real-time as they are being written by an application.\u00a0<\/p><p>The following sections explain each of these use cases in more detail.<\/p><h3><b>Entry-Sequenced and Relative Enscribe File Support<\/b><\/h3><p>\u00a0<\/p><p>In this use case, an entry-sequenced or relative file like a transaction log file from a payment application, or an access log for an in-house application, can be supported by uLinga for Kafka.\u00a0 uLinga for Kafka performs an \u201cend-of-file chase\u201d whereby new records are read from the entry-sequenced file as they are written by the application, and immediately streamed to the Kafka cluster.\u00a0 uLinga for Kafka monitors for the creation of new files and automatically picks them up and starts processing them.\u00a0 uLinga for Kafka can also process files that already exist, and in our in-house testing we\u2019ve seen excellent performance \u2013 more than 10,000TPS on our NonStop X3 server.<\/p><p>\u00a0<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b018868 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b018868\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8c03b3a\" data-id=\"8c03b3a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fd486b8 elementor-widget elementor-widget-image\" data-id=\"fd486b8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg\" class=\"attachment-large size-large wp-image-757\" alt=\"\" srcset=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg 1024w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-300x169.jpg 300w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-768x432.jpg 768w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1536x864.jpg 1536w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-2048x1152.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figure 1. NonStop Application Data Stream from Entry-Sequenced Enscribe File<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-af5f745 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"af5f745\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4ae1c0d\" data-id=\"4ae1c0d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c2c1864 elementor-widget elementor-widget-text-editor\" data-id=\"c2c1864\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>Pathsend and Guardian IPC Support<\/h3><p>\u00a0<\/p><p>Applications can also explicitly send data via the Pathsend and IPC interfaces provided by uLinga for Kafka.\u00a0 This might be useful where specific data streams need to be generated and sent directly from the application.\u00a0 A Pathsend client, such as a Pathway Requestor or Pathway Server, simply sends the relevant data via a Pathsend request to uLinga.\u00a0 A NonStop process sends the data to uLinga for Kafka via IPC calls.\u00a0 uLinga for Kafka\u2019s support for the native Kafka protocols ensures that this data will be streamed with the lowest latency possible.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-77ed71f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"77ed71f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ce4a7ef\" data-id=\"ce4a7ef\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c8bbc6e elementor-widget elementor-widget-image\" data-id=\"c8bbc6e\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-02-1024x576.jpg\" class=\"attachment-large size-large wp-image-758\" alt=\"\" srcset=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-02-1024x576.jpg 1024w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-02-300x169.jpg 300w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-02-768x432.jpg 768w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-02-1536x864.jpg 1536w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-02-2048x1152.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figure 2. NonStop Application Streaming Data Directly via Pathsend<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-eb234c0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"eb234c0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f1d5a6\" data-id=\"2f1d5a6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-af6c64d elementor-widget elementor-widget-text-editor\" data-id=\"af6c64d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p class=\"MsoNormal\">It can also be used to send any Enscribe files to Kafka, via utilities such as FUP.\u00a0 A FUP COPY command can specify uLinga as the output process, directing all data to Kafka.\u00a0 The command would look something like:<\/p><p>\u00a0<\/p><p class=\"MsoNormal\"><span style=\"font-size: 10.0pt; line-height: 107%; font-family: 'Courier New';\">FUP COPY $INFRA.DATA.DATAFILE, $ULKAF.#KAFKA1<\/span><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-924d142 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"924d142\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-940aa75\" data-id=\"940aa75\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9ed4db3 elementor-widget elementor-widget-image\" data-id=\"9ed4db3\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/ULK-and-FUP-1024x576.png\" class=\"attachment-large size-large wp-image-759\" alt=\"\" srcset=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/ULK-and-FUP-1024x576.png 1024w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/ULK-and-FUP-300x169.png 300w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/ULK-and-FUP-768x432.png 768w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/ULK-and-FUP-1536x864.png 1536w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/ULK-and-FUP-2048x1152.png 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figure 3. FUP Reading an Enscribe File and Streaming via uLinga<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8fed491 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8fed491\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fc56b6b\" data-id=\"fc56b6b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9217dfc elementor-widget elementor-widget-text-editor\" data-id=\"9217dfc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>NonStop Application Streaming via HTTP\/REST<\/h3><p>\u00a0<\/p><p>Another possible deployment is in conjunction with an API gateway, such as the new product recently launched by HPE.\u00a0 API gateways, with the central position they occupy within the enterprise, will often produce data that will need to be streamed to Kafka.\u00a0 Administrators of an API gateway, which of course is inherently REST-capable, might decide to utilize the REST interface into uLinga for Kafka \u2013 it\u2019s simple, it\u2019s well-understood, and it will work \u201cout of the box\u201d with a REST-capable client.\u00a0<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0c8ad6c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0c8ad6c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-23af5f7\" data-id=\"23af5f7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b0d1ad3 elementor-widget elementor-widget-image\" data-id=\"b0d1ad3\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-03-1-1024x576.png\" class=\"attachment-large size-large wp-image-760\" alt=\"\" srcset=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-03-1-1024x576.png 1024w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-03-1-300x169.png 300w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-03-1-768x432.png 768w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-03-1-1536x864.png 1536w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-03-1-2048x1152.png 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figure 4. Streaming Data from an API Gateway on NonStop<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b516349 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b516349\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-43a9c52\" data-id=\"43a9c52\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6349d52 elementor-widget elementor-widget-text-editor\" data-id=\"6349d52\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p class=\"MsoNormal\">uLinga for Kafka, like all uLinga products, runs on other enterprise platforms, including Linux and Unix, and can provide these same HTTP\/REST features to any type of HTTP client on any platform.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-280aac1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"280aac1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-21369ed\" data-id=\"21369ed\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bcd1df6 elementor-widget elementor-widget-image\" data-id=\"bcd1df6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-04-1024x576.jpg\" class=\"attachment-large size-large wp-image-761\" alt=\"\" srcset=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-04-1024x576.jpg 1024w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-04-300x169.jpg 300w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-04-768x432.jpg 768w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-04-1536x864.jpg 1536w, https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-04-2048x1152.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figure 5. Streaming Data from an API Gateway on other Platforms<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-93355a6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"93355a6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-21f98a5\" data-id=\"21f98a5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6b0fdbb elementor-widget elementor-widget-text-editor\" data-id=\"6b0fdbb\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>Performance<\/h3><p>\u00a0<\/p><p>As touched on above, because uLinga for Kafka is written in C, and directly implements the Kafka wire protocols, it is not reliant on any additional software and we are seeing some excellent performance figures in our labs.\u00a0 Straight throughput of over 10,000TPS is easily possible.\u00a0 To look at the performance in another way, we\u2019ve tested at a constant transaction rate of 100TPS, and uLinga for Kafka required approximately 1% of a NonStop X NS3 CPU to process that transaction volume.\u00a0 Latency is sub-second.\u00a0 Please note, as always, that performance can and will vary based on a number of environmental factors, and CPU usage is not linear with transaction volume.<\/p><p>\u00a0<\/p><h3>uLinga for Kafka &#8211; What\u2019s Next?<\/h3><p>uLinga for Kafka is now available for beta test partners, so please reach out if you\u2019d like to know more.\u00a0 We are adding new features to the product, and beta partners have the opportunity to help shape the product direction.\u00a0 We\u2019re considering support for the NonStop Event Management Subsystem (EMS) to allow EMS events to be streamed directly to Kafka, and also for the Transaction Management Facility (TMF) to allow TMF audit trails to be streamed.\u00a0 There are many other potential features, so please let us know if you\u2019d like to see a different data source or other feature supported.<\/p><p>We also plan to make uLinga for Kafka act as a Kafka Consumer, meaning that data in Kafka clusters will be easily accessible to NonStop applications. Once again, let us know if you\u2019d like to know more.<\/p><p>\u00a0<\/p><p>uLinga for Kafka will be presented and demonstrated at TBC this year, so keep an eye on the program, leave a comment below, or contact <a href=\"mailto:productinfo@infrasoft.com.au\">productinfo@infrasoft.com.au<\/a> for more information.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Introduction There\u2019s been a lot of talk over the last few years about Kafka, but what is it, and how might it impact NonStop applications and data?\u00a0 According to the Kafka Apache project, Kafka is \u201cthe most popular open-source stream-processing software for collecting, processing, storing and analyzing data at scale.\u201d\u00a0 Kafka is used by thousands [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-561","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>uLinga for Kafka - A Different Approach - Infrasoft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.infrasoft.com.au\/?p=561\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"uLinga for Kafka - A Different Approach - Infrasoft\" \/>\n<meta property=\"og:description\" content=\"Introduction There\u2019s been a lot of talk over the last few years about Kafka, but what is it, and how might it impact NonStop applications and data?\u00a0 According to the Kafka Apache project, Kafka is \u201cthe most popular open-source stream-processing software for collecting, processing, storing and analyzing data at scale.\u201d\u00a0 Kafka is used by thousands [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.infrasoft.com.au\/?p=561\" \/>\n<meta property=\"og:site_name\" content=\"Infrasoft\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.linkedin.com\/company\/infrasoft-pty-limited\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-17T06:45:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-18T02:19:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg\" \/>\n<meta name=\"author\" content=\"website\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"website\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561\"},\"author\":{\"name\":\"website\",\"@id\":\"https:\/\/www.infrasoft.com.au\/#\/schema\/person\/ab1cfc963931c33ab30cec69b057ad56\"},\"headline\":\"uLinga for Kafka &#8211; A Different Approach\",\"datePublished\":\"2021-09-17T06:45:59+00:00\",\"dateModified\":\"2022-05-18T02:19:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561\"},\"wordCount\":1256,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"en-AU\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.infrasoft.com.au\/?p=561#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561\",\"url\":\"https:\/\/www.infrasoft.com.au\/?p=561\",\"name\":\"uLinga for Kafka - A Different Approach - Infrasoft\",\"isPartOf\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg\",\"datePublished\":\"2021-09-17T06:45:59+00:00\",\"dateModified\":\"2022-05-18T02:19:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561#breadcrumb\"},\"inLanguage\":\"en-AU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.infrasoft.com.au\/?p=561\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage\",\"url\":\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-scaled.jpg\",\"contentUrl\":\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-scaled.jpg\",\"width\":2560,\"height\":1440},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.infrasoft.com.au\/?p=561#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.infrasoft.com.au\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"uLinga for Kafka &#8211; A Different Approach\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.infrasoft.com.au\/#website\",\"url\":\"https:\/\/www.infrasoft.com.au\/\",\"name\":\"Infrasoft\",\"description\":\"High Availability Software Infrastructure\",\"publisher\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.infrasoft.com.au\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-AU\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.infrasoft.com.au\/#organization\",\"name\":\"Infrasoft\",\"url\":\"https:\/\/www.infrasoft.com.au\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\/\/www.infrasoft.com.au\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/10\/cropped-infrasoft_icon.jpg\",\"contentUrl\":\"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/10\/cropped-infrasoft_icon.jpg\",\"width\":512,\"height\":512,\"caption\":\"Infrasoft\"},\"image\":{\"@id\":\"https:\/\/www.infrasoft.com.au\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/infrasoft-pty-limited\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.infrasoft.com.au\/#\/schema\/person\/ab1cfc963931c33ab30cec69b057ad56\",\"name\":\"website\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\/\/www.infrasoft.com.au\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f8ed84048fcdb5afa88338fd16181fdd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f8ed84048fcdb5afa88338fd16181fdd?s=96&d=mm&r=g\",\"caption\":\"website\"},\"sameAs\":[\"https:\/\/www.infrasoft.com.au\/\"],\"url\":\"https:\/\/www.infrasoft.com.au\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"uLinga for Kafka - A Different Approach - Infrasoft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.infrasoft.com.au\/?p=561","og_locale":"en_US","og_type":"article","og_title":"uLinga for Kafka - A Different Approach - Infrasoft","og_description":"Introduction There\u2019s been a lot of talk over the last few years about Kafka, but what is it, and how might it impact NonStop applications and data?\u00a0 According to the Kafka Apache project, Kafka is \u201cthe most popular open-source stream-processing software for collecting, processing, storing and analyzing data at scale.\u201d\u00a0 Kafka is used by thousands [&hellip;]","og_url":"https:\/\/www.infrasoft.com.au\/?p=561","og_site_name":"Infrasoft","article_publisher":"https:\/\/www.linkedin.com\/company\/infrasoft-pty-limited","article_published_time":"2021-09-17T06:45:59+00:00","article_modified_time":"2022-05-18T02:19:18+00:00","og_image":[{"url":"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg","type":"","width":"","height":""}],"author":"website","twitter_card":"summary_large_image","twitter_misc":{"Written by":"website","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.infrasoft.com.au\/?p=561#article","isPartOf":{"@id":"https:\/\/www.infrasoft.com.au\/?p=561"},"author":{"name":"website","@id":"https:\/\/www.infrasoft.com.au\/#\/schema\/person\/ab1cfc963931c33ab30cec69b057ad56"},"headline":"uLinga for Kafka &#8211; A Different Approach","datePublished":"2021-09-17T06:45:59+00:00","dateModified":"2022-05-18T02:19:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.infrasoft.com.au\/?p=561"},"wordCount":1256,"commentCount":0,"publisher":{"@id":"https:\/\/www.infrasoft.com.au\/#organization"},"image":{"@id":"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage"},"thumbnailUrl":"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg","articleSection":["Uncategorized"],"inLanguage":"en-AU","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.infrasoft.com.au\/?p=561#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.infrasoft.com.au\/?p=561","url":"https:\/\/www.infrasoft.com.au\/?p=561","name":"uLinga for Kafka - A Different Approach - Infrasoft","isPartOf":{"@id":"https:\/\/www.infrasoft.com.au\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage"},"image":{"@id":"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage"},"thumbnailUrl":"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-1024x576.jpg","datePublished":"2021-09-17T06:45:59+00:00","dateModified":"2022-05-18T02:19:18+00:00","breadcrumb":{"@id":"https:\/\/www.infrasoft.com.au\/?p=561#breadcrumb"},"inLanguage":"en-AU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.infrasoft.com.au\/?p=561"]}]},{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/www.infrasoft.com.au\/?p=561#primaryimage","url":"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-scaled.jpg","contentUrl":"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2022\/05\/InfraSoft-Kafka-Diagrams-01-scaled.jpg","width":2560,"height":1440},{"@type":"BreadcrumbList","@id":"https:\/\/www.infrasoft.com.au\/?p=561#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.infrasoft.com.au\/"},{"@type":"ListItem","position":2,"name":"uLinga for Kafka &#8211; A Different Approach"}]},{"@type":"WebSite","@id":"https:\/\/www.infrasoft.com.au\/#website","url":"https:\/\/www.infrasoft.com.au\/","name":"Infrasoft","description":"High Availability Software Infrastructure","publisher":{"@id":"https:\/\/www.infrasoft.com.au\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.infrasoft.com.au\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-AU"},{"@type":"Organization","@id":"https:\/\/www.infrasoft.com.au\/#organization","name":"Infrasoft","url":"https:\/\/www.infrasoft.com.au\/","logo":{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/www.infrasoft.com.au\/#\/schema\/logo\/image\/","url":"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/10\/cropped-infrasoft_icon.jpg","contentUrl":"https:\/\/www.infrasoft.com.au\/wp-content\/uploads\/2021\/10\/cropped-infrasoft_icon.jpg","width":512,"height":512,"caption":"Infrasoft"},"image":{"@id":"https:\/\/www.infrasoft.com.au\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/infrasoft-pty-limited"]},{"@type":"Person","@id":"https:\/\/www.infrasoft.com.au\/#\/schema\/person\/ab1cfc963931c33ab30cec69b057ad56","name":"website","image":{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/www.infrasoft.com.au\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f8ed84048fcdb5afa88338fd16181fdd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f8ed84048fcdb5afa88338fd16181fdd?s=96&d=mm&r=g","caption":"website"},"sameAs":["https:\/\/www.infrasoft.com.au\/"],"url":"https:\/\/www.infrasoft.com.au\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=\/wp\/v2\/posts\/561"}],"collection":[{"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=561"}],"version-history":[{"count":8,"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=\/wp\/v2\/posts\/561\/revisions"}],"predecessor-version":[{"id":809,"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=\/wp\/v2\/posts\/561\/revisions\/809"}],"wp:attachment":[{"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.infrasoft.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}