{"id":44393,"date":"2026-05-13T07:12:15","date_gmt":"2026-05-13T05:12:15","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=44393"},"modified":"2026-05-13T07:12:17","modified_gmt":"2026-05-13T05:12:17","slug":"postgresql-19-dynamically-adjust-the-i-o-worker-pool","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/","title":{"rendered":"PostgreSQL 19: Dynamically adjust the I\/O worker pool"},"content":{"rendered":"\n<p>When <a href=\"https:\/\/www.postgresql.org\/docs\/current\/release-18.html#RELEASE-18-CHANGES\" target=\"_blank\" rel=\"noreferrer noopener\">PostgreSQL 18 was released<\/a> last year one of the major features was the <a href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-18-support-for-asynchronous-i-o\/\" target=\"_blank\" rel=\"noreferrer noopener\">introduction of the asynchronous I\/O subsystem<\/a>. The main configuration parameter for this was (and still is) <a href=\"https:\/\/www.postgresql.org\/docs\/18\/runtime-config-resource.html#GUC-IO-METHOD\" target=\"_blank\" rel=\"noreferrer noopener\">io_method<\/a>, which can be &#8220;worker&#8221; (the default), <a href=\"https:\/\/en.wikipedia.org\/wiki\/Io_uring\" target=\"_blank\" rel=\"noreferrer noopener\">io_uring<\/a> or sync (the old behavior). If you opted for &#8220;workers&#8221; the number of those workers is controlled by &#8220;<a href=\"https:\/\/www.postgresql.org\/docs\/18\/runtime-config-resource.html#GUC-IO-WORKERS\" target=\"_blank\" rel=\"noreferrer noopener\">io_workers<\/a>&#8221; and the default for this is 3. PostgreSQL 19 most probably will change the way how many of those workers are launched, not anymore using the static value of &#8220;io_workers&#8221; but making this dynamic by launching workers from a predefined pool.<\/p>\n\n\n\n<p>The configuration parameter &#8220;io_workers&#8221; is gone and four additional parameters show up to control this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres=# \\dconfig io_*work*\n List of configuration parameters\n         Parameter         | Value \n---------------------------+-------\n io_max_workers            | 8\n io_min_workers            | 2\n io_worker_idle_timeout    | 1min\n io_worker_launch_interval | 100ms\n(4 rows)\n<\/pre><\/div>\n\n\n<p>&#8220;io_min_workes&#8221; (as the name implies) controls how many workers are available by default, which is two:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres@:\/home\/postgres\/ &#x5B;DEV] ps -ef | grep postgres | grep worker | grep -v grep\npostgres    8564    8562  0 06:34 ?        00:00:00 postgres: pgdev: io worker 0\npostgres    8565    8562  0 06:34 ?        00:00:00 postgres: pgdev: io worker 1\n<\/pre><\/div>\n\n\n<p>&#8220;io_max_workers&#8221; (again, as the name implies) controls the maximum worker processes which can be launched for the whole instance.<\/p>\n\n\n\n<p>To see that dynamic startup of workers in action lets create a simple table containing twenty million rows:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; highlight: [1,3]; title: ; notranslate\" title=\"\">\npostgres=# create table t ( a int, b text, c timestamptz );\nCREATE TABLE\npostgres=# insert into t select i, i::text, now() from generate_series(1,20000000) i;\nINSERT 0 2000000\n<\/pre><\/div>\n\n\n<p>While watching the workers in a separate session:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres@:\/home\/postgres\/ &#x5B;DEV] watch &quot;ps -ef | grep postgres | grep worker | grep -v grep&quot;\n\nEvery 2.0s: ps -ef | grep postgres | grep worker | grep -v grep               pgbox.it.dbi-services.com: 06:52:20 AM\n                                                                                                       in 0.022s (0)\npostgres    8564    8562  0 06:34 ?        00:00:00 postgres: pgdev: io worker 0\npostgres    8565    8562  0 06:34 ?        00:00:00 postgres: pgdev: io worker 1\n<\/pre><\/div>\n\n\n<p>&#8230; and doing a count(*) over the whole table in session one:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres=# select count(*) from t;\n  count   \n----------\n 20000000\n(1 row)\n<\/pre><\/div>\n\n\n<p>&#8230; you&#8217;ll notice that an additional worker (io worker 2) shows up in the second session watching the processes (maybe you have to play a bit with the number of rows depending on your configuration of PostgreSQL):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [6]; title: ; notranslate\" title=\"\">\nEvery 2.0s: ps -ef | grep postgres | grep worker | grep -v grep               pgbox.it.dbi-services.com: 07:02:40 AM\n                                                                                                       in 0.018s (0)\npostgres    8564    8562  0 06:34 ?        00:00:02 postgres: pgdev: io worker 0\npostgres    8565    8562  0 06:34 ?        00:00:00 postgres: pgdev: io worker 1\npostgres   11914    8562  0 07:02 ?        00:00:00 postgres: pgdev: io worker 2\n<\/pre><\/div>\n\n\n<p>Once this additional worker is idle for one minute it will disappear and we&#8217;re back to two worker processes:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\nEvery 2.0s: ps -ef | grep postgres | grep worker | grep -v grep               pgbox.it.dbi-services.com: 07:04:24 AM\n                                                                                                       in 0.020s (0)\npostgres    8564    8562  0 06:34 ?        00:00:02 postgres: pgdev: io worker 0\npostgres    8565    8562  0 06:34 ?        00:00:00 postgres: pgdev: io worker 1\n<\/pre><\/div>\n\n\n<p>This is controlled by &#8220;io_worker_idle_timeout&#8221; and the default is one minute. <\/p>\n\n\n\n<p>The remaining configuration knob is &#8220;io_worker_launch_interval&#8221;, and this is the interval at which additional workers can be launched. The reason behind this is, that not too many workers will be launched at once.<\/p>\n\n\n\n<p>This will make tuning the workers easier, compared to PostgreSQL 18. Again, thanks to all involved, the commit is <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=d1c01b79d4ae90e52bf9db9c05c9de17b7313e85\">here<\/a>.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When PostgreSQL 18 was released last year one of the major features was the introduction of the asynchronous I\/O subsystem. The main configuration parameter for this was (and still is) io_method, which can be &#8220;worker&#8221; (the default), io_uring or sync (the old behavior). If you opted for &#8220;workers&#8221; the number of those workers is controlled [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198],"tags":[77],"type_dbi":[2749],"class_list":["post-44393","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-database-management","tag-postgresql","type-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL 19: Dynamically adjust the I\/O worker pool - dbi Blog<\/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.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL 19: Dynamically adjust the I\/O worker pool\" \/>\n<meta property=\"og:description\" content=\"When PostgreSQL 18 was released last year one of the major features was the introduction of the asynchronous I\/O subsystem. The main configuration parameter for this was (and still is) io_method, which can be &#8220;worker&#8221; (the default), io_uring or sync (the old behavior). If you opted for &#8220;workers&#8221; the number of those workers is controlled [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-13T05:12:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-13T05:12:17+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"PostgreSQL 19: Dynamically adjust the I\\\/O worker pool\",\"datePublished\":\"2026-05-13T05:12:15+00:00\",\"dateModified\":\"2026-05-13T05:12:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/\"},\"wordCount\":325,\"commentCount\":0,\"keywords\":[\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/\",\"name\":\"PostgreSQL 19: Dynamically adjust the I\\\/O worker pool - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-05-13T05:12:15+00:00\",\"dateModified\":\"2026-05-13T05:12:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL 19: Dynamically adjust the I\\\/O worker pool\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\\\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/westermanndanie\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/daniel-westermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL 19: Dynamically adjust the I\/O worker pool - dbi Blog","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.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL 19: Dynamically adjust the I\/O worker pool","og_description":"When PostgreSQL 18 was released last year one of the major features was the introduction of the asynchronous I\/O subsystem. The main configuration parameter for this was (and still is) io_method, which can be &#8220;worker&#8221; (the default), io_uring or sync (the old behavior). If you opted for &#8220;workers&#8221; the number of those workers is controlled [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/","og_site_name":"dbi Blog","article_published_time":"2026-05-13T05:12:15+00:00","article_modified_time":"2026-05-13T05:12:17+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"PostgreSQL 19: Dynamically adjust the I\/O worker pool","datePublished":"2026-05-13T05:12:15+00:00","dateModified":"2026-05-13T05:12:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/"},"wordCount":325,"commentCount":0,"keywords":["PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring","Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/","name":"PostgreSQL 19: Dynamically adjust the I\/O worker pool - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2026-05-13T05:12:15+00:00","dateModified":"2026-05-13T05:12:17+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-19-dynamically-adjust-the-i-o-worker-pool\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL 19: Dynamically adjust the I\/O worker pool"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/44393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=44393"}],"version-history":[{"count":5,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/44393\/revisions"}],"predecessor-version":[{"id":44398,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/44393\/revisions\/44398"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=44393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=44393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=44393"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=44393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}