{"id":1925,"date":"2012-04-26T18:43:06","date_gmt":"2012-04-26T15:43:06","guid":{"rendered":"http:\/\/blog.railsware.com\/?p=1925"},"modified":"2021-08-15T15:09:47","modified_gmt":"2021-08-15T12:09:47","slug":"speed-up-your-activeresources","status":"publish","type":"post","link":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/","title":{"rendered":"Speed up your ActiveResources!"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Preface<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In non trivial projects we often use <a href=\"http:\/\/en.wikipedia.org\/wiki\/Service-oriented_architecture\">SOA<\/a> approach.<br>Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious &#8211; it&#8217;s easy to control and maintain small applications. If you use <a href=\"http:\/\/rubyonrails.org\/\">Rails framework<\/a> you probably already use <a href=\"https:\/\/github.com\/rails\/ActiveResource\">ActiveResource<\/a> for requesting your services because if follows ActiveRecord conventions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Definitely ActiveResource operations are much slower than ActiveRecord operations because first one use HTTP connection and second one use usually <em>persistent<\/em> connection to database and database is usually always faster than application service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But modern HTTP\/1.1 servers support <a href=\"http:\/\/en.wikipedia.org\/wiki\/HTTP_persistent_connection\">persistent connection<\/a> and as Ilya Grigorik already mentioned in his awesome <a href=\"http:\/\/www.igvita.com\/2011\/10\/04\/optimizing-http-keep-alive-and-pipelining\/\">article<\/a> we can have serious speedup for resources usage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem is that <a href=\"https:\/\/rails.lighthouseapp.com\/projects\/8994\/tickets\/1513-activeresource-does-not-support-keep-alive-connections\">ActiveResource does not support keep-alive connections<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But not for Railsware :).<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">ActiveResource is Persistent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After playing a bit with sources we released small gem <a href=\"https:\/\/rubygems.org\/gems\/activeresource-persistent\">ActiveResource::Persistent<\/a> that allows ActiveResource to use HTTP keep-alive feature.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Installation is trivial. Just drop line into your Gemfile<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">gem 'activeresource-persistent', :require => 'active_resource\/persistent'\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And all your resources will automatically reuse connections to services!<br>You should NOT modify any line of your code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Under the hood<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Persistent connections are handled by excellent <a href=\"https:\/\/rubygems.org\/gems\/net-http-persistent\">net-http-persistent<\/a> library. The gem actually is very simple and provides ActiveResource::Persistent::HTTP object wrapper for ActiveResource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However we covered library with specs that ensure it will work with different ActiveResource versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Currently it works with:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>v2.3.x<\/li><li>v3.0.x<\/li><li>v3.1.x<\/li><li>v3.2.x<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Enjoy! :)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">References<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/rubygems.org\/gems\/activeresource-persistent\">ActiveResource::Persistent gem<\/a><\/li><li><a href=\"https:\/\/github.com\/railsware\/activeresource-persistent\">ActiveResource::Persistent repository<\/a><\/li><li><a href=\"http:\/\/www.igvita.com\/2011\/10\/04\/optimizing-http-keep-alive-and-pipelining\/\">Optimizing HTTP: Keep-alive and Pipelining<\/a><\/li><li><a href=\"https:\/\/rails.lighthouseapp.com\/projects\/8994\/tickets\/1513-activeresource-does-not-support-keep-alive-connections\">ActiveResource does not support keep-alive connections<\/a><\/li><li><a href=\"https:\/\/rubygems.org\/gems\/net-http-persistent\">net-http-persistent gem<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Preface In non trivial projects we often use SOA approach.Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious &#8211; it&#8217;s easy to control and maintain small applications. If you use Rails framework you probably already use ActiveResource for requesting your services because if follows ActiveRecord conventions. Definitely&#8230;<\/p>\n","protected":false},"author":19,"featured_media":1932,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[3],"tags":[],"coauthors":["Andriy Yanko"],"class_list":["post-1925","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"n non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious \u2013 it\u2019s easy to control and maintain small applications.\" \/>\n\t<meta name=\"robots\" content=\"max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<meta name=\"author\" content=\"Andriy Yanko\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"| Blog on Engineering, Product Management, Transparency, Culture and many more...\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Speed up your ActiveResources! | Railsware Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"n non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious \u2013 it\u2019s easy to control and maintain small applications.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2012\/04\/http_keepalive.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2012\/04\/http_keepalive.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"160\" \/>\n\t\t<meta property=\"og:image:height\" content=\"135\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2012-04-26T15:43:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-08-15T12:09:47+00:00\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#article\",\"name\":\"Speed up your ActiveResources! | Railsware Blog\",\"headline\":\"Speed up your ActiveResources!\",\"author\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/author\\\/ayanko\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/wp-content\\\/uploads\\\/2012\\\/04\\\/http_keepalive.png\",\"width\":160,\"height\":135},\"datePublished\":\"2012-04-26T18:43:06+03:00\",\"dateModified\":\"2021-08-15T15:09:47+03:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#webpage\"},\"articleSection\":\"Engineering\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/railsware.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/category\\\/development\\\/#listItem\",\"name\":\"Engineering\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/category\\\/development\\\/#listItem\",\"position\":2,\"name\":\"Engineering\",\"item\":\"https:\\\/\\\/railsware.com\\\/blog\\\/category\\\/development\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#listItem\",\"name\":\"Speed up your ActiveResources!\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#listItem\",\"position\":3,\"name\":\"Speed up your ActiveResources!\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/category\\\/development\\\/#listItem\",\"name\":\"Engineering\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/#organization\",\"description\":\"Blog on Engineering, Product Management, Transparency, Culture and many more...\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/Logo-circle.png\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#organizationLogo\",\"width\":3137,\"height\":1054,\"caption\":\"Railsware logo\"},\"image\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/author\\\/ayanko\\\/#author\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/author\\\/ayanko\\\/\",\"name\":\"Andriy Yanko\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#authorImage\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/andriy-yanko-96x96.jpg\",\"width\":96,\"height\":96,\"caption\":\"Andriy Yanko\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#webpage\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/\",\"name\":\"Speed up your ActiveResources! | Railsware Blog\",\"description\":\"n non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious \\u2013 it\\u2019s easy to control and maintain small applications.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/author\\\/ayanko\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/author\\\/ayanko\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/wp-content\\\/uploads\\\/2012\\\/04\\\/http_keepalive.png\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#mainImage\",\"width\":160,\"height\":135},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/speed-up-your-activeresources\\\/#mainImage\"},\"datePublished\":\"2012-04-26T18:43:06+03:00\",\"dateModified\":\"2021-08-15T15:09:47+03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/railsware.com\\\/blog\\\/\",\"description\":\"Blog on Engineering, Product Management, Transparency, Culture and many more...\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/railsware.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Speed up your ActiveResources! | Railsware Blog","description":"n non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious \u2013 it\u2019s easy to control and maintain small applications.","canonical_url":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/","robots":"max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#article","name":"Speed up your ActiveResources! | Railsware Blog","headline":"Speed up your ActiveResources!","author":{"@id":"https:\/\/railsware.com\/blog\/author\/ayanko\/#author"},"publisher":{"@id":"https:\/\/railsware.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2012\/04\/http_keepalive.png","width":160,"height":135},"datePublished":"2012-04-26T18:43:06+03:00","dateModified":"2021-08-15T15:09:47+03:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#webpage"},"isPartOf":{"@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#webpage"},"articleSection":"Engineering"},{"@type":"BreadcrumbList","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/railsware.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/railsware.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/railsware.com\/blog\/category\/development\/#listItem","name":"Engineering"}},{"@type":"ListItem","@id":"https:\/\/railsware.com\/blog\/category\/development\/#listItem","position":2,"name":"Engineering","item":"https:\/\/railsware.com\/blog\/category\/development\/","nextItem":{"@type":"ListItem","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#listItem","name":"Speed up your ActiveResources!"},"previousItem":{"@type":"ListItem","@id":"https:\/\/railsware.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#listItem","position":3,"name":"Speed up your ActiveResources!","previousItem":{"@type":"ListItem","@id":"https:\/\/railsware.com\/blog\/category\/development\/#listItem","name":"Engineering"}}]},{"@type":"Organization","@id":"https:\/\/railsware.com\/blog\/#organization","description":"Blog on Engineering, Product Management, Transparency, Culture and many more...","url":"https:\/\/railsware.com\/blog\/","logo":{"@type":"ImageObject","url":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2020\/11\/Logo-circle.png","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#organizationLogo","width":3137,"height":1054,"caption":"Railsware logo"},"image":{"@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/railsware.com\/blog\/author\/ayanko\/#author","url":"https:\/\/railsware.com\/blog\/author\/ayanko\/","name":"Andriy Yanko","image":{"@type":"ImageObject","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#authorImage","url":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2021\/06\/andriy-yanko-96x96.jpg","width":96,"height":96,"caption":"Andriy Yanko"}},{"@type":"WebPage","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#webpage","url":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/","name":"Speed up your ActiveResources! | Railsware Blog","description":"n non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious \u2013 it\u2019s easy to control and maintain small applications.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/railsware.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#breadcrumblist"},"author":{"@id":"https:\/\/railsware.com\/blog\/author\/ayanko\/#author"},"creator":{"@id":"https:\/\/railsware.com\/blog\/author\/ayanko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2012\/04\/http_keepalive.png","@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#mainImage","width":160,"height":135},"primaryImageOfPage":{"@id":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/#mainImage"},"datePublished":"2012-04-26T18:43:06+03:00","dateModified":"2021-08-15T15:09:47+03:00"},{"@type":"WebSite","@id":"https:\/\/railsware.com\/blog\/#website","url":"https:\/\/railsware.com\/blog\/","description":"Blog on Engineering, Product Management, Transparency, Culture and many more...","inLanguage":"en-US","publisher":{"@id":"https:\/\/railsware.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"| Blog on Engineering, Product Management, Transparency, Culture and many more...","og:type":"article","og:title":"Speed up your ActiveResources! | Railsware Blog","og:description":"n non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious \u2013 it\u2019s easy to control and maintain small applications.","og:url":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/","og:image":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2012\/04\/http_keepalive.png","og:image:secure_url":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2012\/04\/http_keepalive.png","og:image:width":160,"og:image:height":135,"article:published_time":"2012-04-26T15:43:06+00:00","article:modified_time":"2021-08-15T12:09:47+00:00"},"aioseo_meta_data":{"post_id":"1925","title":"Speed up your ActiveResources! | Railsware Blog","description":"n non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious \u2013 it\u2019s easy to control and maintain small applications.","keywords":[{"label":"ActiveResource","value":"ActiveResource"},{"label":"SOA","value":"SOA"},{"label":"performance","value":"performance"}],"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":{"id":"aioseo-article-6385f5b040ffe","slug":"article","graphName":"Article","label":"Article","properties":{"type":"BlogPosting","name":"#post_title","headline":"#post_title","description":"#post_excerpt","image":"","keywords":"","author":{"name":"#author_name","url":"#author_url"},"dates":{"include":true,"datePublished":"","dateModified":""}}},"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":{"locations":{"business":{"name":"","businessType":"","image":"","areaServed":"","urls":{"website":"","aboutPage":"","contactPage":""},"address":{"streetLine1":"","streetLine2":"","zipCode":"","city":"","state":"","country":"","addressFormat":"#streetLineOne\n#streetLineTwo\n#city, #state #zipCode"},"contact":{"email":"","phone":"","phoneFormatted":"","fax":"","faxFormatted":""},"ids":{"vat":"","tax":"","chamberOfCommerce":""},"payment":{"priceRange":"","currenciesAccepted":"","methods":""}}},"openingHours":{"useDefaults":true,"show":true,"alwaysOpen":false,"use24hFormat":false,"timezone":"","labels":{"closed":"","alwaysOpen":""},"days":{"monday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"tuesday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"wednesday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"thursday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"friday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"saturday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"},"sunday":{"open24h":false,"closed":false,"openTime":"09:00","closeTime":"17:00"}}}},"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-01-04 12:44:08","updated":"2025-09-26 11:14:39","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/railsware.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/railsware.com\/blog\/category\/development\/\" title=\"Engineering\">Engineering<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSpeed up your ActiveResources!\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/railsware.com\/blog"},{"label":"Engineering","link":"https:\/\/railsware.com\/blog\/category\/development\/"},{"label":"Speed up your ActiveResources!","link":"https:\/\/railsware.com\/blog\/speed-up-your-activeresources\/"}],"categories_data":[{"name":"Engineering","link":"https:\/\/railsware.com\/blog?category=development"}],"post_thumbnails":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2012\/04\/http_keepalive.png","article_background":"","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/1925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/comments?post=1925"}],"version-history":[{"count":16,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/1925\/revisions"}],"predecessor-version":[{"id":14066,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/1925\/revisions\/14066"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media\/1932"}],"wp:attachment":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media?parent=1925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/categories?post=1925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/tags?post=1925"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/coauthors?post=1925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}