For many data aficionados, Postgres is the way to store and manage relational data. It’s efficient, it’s straightforward, and it plays nice with other tools. But even Postgres has its limits. When you’re working with a relentless stream of live data, you may catch Postgres chugging along on the struggle bus: slower queries, more maintenance requirements, and enough database upkeep to make your autovacuum beg for a pit stop.Developers are increasingly turning to Postgres as a foundation for AI applications, thanks in part to its flexibility and extensive ecosystem. But you might hit its limits even faster as you add AI agents to your pipeline. Agentic workflows often increase database activity. You’ll likely see more frequent database requests and a need to retain more data over time.As your tables and indexes grow, keeping queries fast may require more behind-the-scenes attention. Vanilla Postgres may have handled your time-series data just fine at first; that is, until keeping Postgres running becomes a job of its own.Join the conversation: On October 21, we’ll sit down with Matty Stratton, Head of Developer Advocacy and Docs at Tiger Data, to discuss how scale stretches vanilla Postgres to its limits and how you can extend it with TimescaleDB. He’ll walk through a live demo of TimescaleDB and point out which Postgres pain points emerge as data volume and velocity increase. REGISTER NOW FOR THIS WEBINARWhat's the biggest thing standing between you and scaling Postgres for time-series data today?*Please selectI don't know where my limits are yetI know where it breaks, just not what to do about itI'm actively evaluating a switchJust here to learnEmail *First Name *Last Name *Job Role *Please selectAI Researcher / Research ScientistArchitectBusiness Development/Marketing/SalesCommunity Manager / Developer AdvocateData Analyst / Business Intelligence AnalystData EngineerData ScientistDeveloper / Software EngineerDevOps EngineerEducator / InstructorEnthusiast/HobbyistFounder / Entrepreneur / Investor / VCIT management, including CIO/CISO/CTO/CDOMachine Learning EngineerMLOps Engineer / Infrastructure EngineerProduct ManagerSecurity / Privacy ProfessionalStatistician / Quantitative AnalystStudentSysAdmin/Operations/SRETechnical WriterUX / UI Designer / Data Visualization SpecialistJob Level *Please selectC-LevelFounder/OwnerVP/DirectorManager/SupervisorMid Level or Senior Individual ContributorEntry Level or Junior Individual ContributorFreelancer/ContractorEducator (Teacher, Instructor, Professor)Student/InternOtherN/AIndustry *Please selectAdvertising/MarketingAerospace/AviationAgricultureAutomotiveBiotech/PharmaceuticalBusiness Services (accounting, consulting, etc.)Computers/Information TechnologyConstructionEducationFacilities/Service IndustryFinance/Financial Services (banking, insurance, etc.)GovernmentHealthcareHuman ResourcesLegalLife sciences (biotech, pharmaceuticals, etc.)ManufacturingMediaNon-profitReal EstateRetail/Consumer GoodsTelecommunicationsTransportation/LogisticsTravel/Hospitality/EntertainmentUtility/EnergyOrganization *Country *Please selectUnited StatesCanadaUnited KingdomAfghanistanAlbaniaAlgeriaAndorraAngolaAntigua and BarbudaArgentinaArmeniaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBhutanBoliviaBosnia and HerzegovinaBotswanaBrazilBruneiBulgariaBurkina FasoBurundiCabo VerdeCambodiaCameroonCentral African RepublicChadChileChinaColombiaComorosCongoCongo (Democratic Republic)Costa RicaCote d’IvoireCroatiaCubaCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEswatiniEthiopiaFijiFinlandFranceGabonGambiaGeorgiaGermanyGhanaGreeceGrenadaGuatemalaGuineaGuinea-BissauGuyanaHaitiHondurasHungaryIcelandIndiaIndonesiaIranIraqIrelandIsraelItalyJamaicaJapanJordanKazakhstanKenyaKiribatiKorea (North)Korea (South)KuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMauritaniaMauritiusMexicoMicronesiaMoldovaMonacoMongoliaMontenegroMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew ZealandNicaraguaNigerNigeriaNorth MacedoniaNorwayOmanPakistanPalauPalestinePanamaPapua New GuineaParaguayPeruPhilippinesPolandPortugalQatarRomaniaRussiaRwandaSaint Kitts and NevisSaint LuciaSaint Vincent and the GrenadinesSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth SudanSpainSri LankaSudanSurinameSwedenSwitzerlandSyriaTaiwanTajikistanTanzaniaThailandTimor-LesteTogoTongaTrinidad and TobagoTunisiaTurkeyTurkmenistanTuvaluUgandaUkraineUnited Arab EmiratesUruguayUzbekistanVanuatuVatican CityVenezuelaVietnamYemenZambiaZimbabweState *Phone NumberRegisterBy registering, you consent to The New Stack’s Privacy Policy, Terms of Useand to receiving email communication from The New Stack and our event partner. You may opt out at any time.You have successfully registered for the webinar.$(document).ready(function() {// Get UTM parameters.var utm_source = window.tns.getUTMParameterValue('utm_source');var utm_medium = window.tns.getUTMParameterValue('utm_medium');var utm_campaign = window.tns.getUTMParameterValue('utm_campaign');var utm_term = window.tns.getUTMParameterValue('utm_term');var utm_content = window.tns.getUTMParameterValue('utm_content');if (utm_source) { $('input[name="utm_source"]').val(utm_source) }if (utm_medium) { $('input[name="utm_medium"]').val(utm_medium) }if (utm_campaign) { $('input[name="utm_campaign"]').val(utm_campaign) }if (utm_term) { $('input[name="utm_term"]').val(utm_term) }if (utm_content) { $('input[name="utm_content"]').val(utm_content) }if ( $('.airmeet-container[data-event-id]').length ) {initAirmeetRegistrationForm();}/*window.dataLayer.push({'event' : 'webinar_registration_started','object_id' : '22835652','object_type' : 'webinar','post_title' : 'Postgres at Scale: What Breaks (and What Doesn\'t) When Live Data Grows',});*/function showFormStage( stage ){if ( stage == 1 ) {$('.airmeet-profile-fields').attr('hidden', true).hide();$('.airmeet-register').prop('disabled', true);} else if ( stage == 2 ) {$('.airmeet-profile-fields').removeAttr('hidden').show();$('.airmeet-register').prop('disabled', false);}}function initAirmeetRegistrationForm() {window.webinar_registration_started = false;var $form = $('.airmeet-registration-form');var $questionFields = $form.find('.airmeet-questions [data-question]');if ( $questionFields.length === 0 ) {showFormStage(2);}// Listen for question field values.$questionFields.on('change input', function() {var allFilled = $questionFields.filter(function() {return $.trim($(this).val()) !== '';}).length === $questionFields.length;if ( allFilled ) {showFormStage(2);}if ( ! window.webinar_registration_started ) {window.dataLayer.push({'event' : 'webinar_registration_started','object_id' : '22835652','object_type' : 'webinar','post_title' : 'Postgres at Scale: What Breaks (and What Doesn\'t) When Live Data Grows',});}window.webinar_registration_started = true;});// Listen for job-role field, show additional fields if necessary.$form.find('select[name="job-role"]').on('change', function() {var val = $(this).val();if ( val && val !== 'student' && val !== 'enthusiast-hobbyist' ) {$('.airmeet-job-more-fields').removeAttr('hidden').show();$('.airmeet-job-more-fields').find('select, input').prop('disabled', false);} else {$('.airmeet-job-more-fields').find('select, input').val('').prop('disabled', true);$('.airmeet-job-more-fields').attr('hidden', true).hide();}});// Listen for country field, show state field for US/CA.$form.find('select[name="country"]').on('change', function() {var val = $(this).val();if ( val === 'US' || val === 'CA' ) {$('.airmeet-state-field').removeAttr('hidden').show();$('.airmeet-state-field').find('input').prop('disabled', false);} else {$('.airmeet-state-field').find('input').val('').prop('disabled', true);$('.airmeet-state-field').attr('hidden', true).hide();}});// Listen for changes on all non-question fields.$form.find('input, select').not('[data-question]').not('[type="hidden"]').on('change input', function() {window.dataLayer.push({'event' : 'webinar_registration_form_interaction','object_id' : '22835652','object_type' : 'webinar','post_title' : 'Postgres at Scale: What Breaks (and What Doesn\'t) When Live Data Grows',});});$form.on('submit', function(e) {e.preventDefault();handleSubmit();});}function handleSubmit() {var $form = $('.airmeet-registration-form');var $btn = $form.find('.airmeet-register');$btn.prop('disabled', true).text('Registering...');// Collect CMS-configured questionsvar questions = [];$form.find('[data-question]').each(function() {questions.push({question: $(this).data('question'),answer: $(this).val()});});var data = {event_id: $form.find('input[name="event_id"]').val(),utm_source: $form.find('input[name="utm_source"]').val(),utm_medium: $form.find('input[name="utm_medium"]').val(),utm_campaign: $form.find('input[name="utm_campaign"]').val(),utm_term: $form.find('input[name="utm_term"]').val(),utm_content: $form.find('input[name="utm_content"]').val(),questions: questions,'email': $form.find('input[name="email"]').val(),'first-name': $form.find('input[name="first-name"]').val(),'last-name': $form.find('input[name="last-name"]').val(),'job-role': $form.find('select[name="job-role"]').val(),'job-level': $form.find('select[name="job-level"]').val(),'industry': $form.find('select[name="industry"]').val(),'organization': $form.find('input[name="organization"]').val(),'country': $form.find('select[name="country"]').val(),'state': $form.find('input[name="state"]').val(),'phone-number': $form.find('input[name="phone-number"]').val()};$.ajax({url: '/wp-json/airmeet/register-webinar',method: 'POST',contentType: 'application/json',data: JSON.stringify(data),success: function(response) {var status = response && response.status;var eventName = status === 'already_registered'? 'webinar_registration_already_registered': 'webinar_registration_completed';window.dataLayer.push({'event' : eventName,'object_id' : '22835652','object_type' : 'webinar','post_title' : 'Postgres at Scale: What Breaks (and What Doesn\'t) When Live Data Grows',});showSuccess();},error: function(xhr) {var msg = 'Registration failed. Please try again.';if ( xhr.responseJSON && xhr.responseJSON.error ) {msg = xhr.responseJSON.error;}alert(msg);$btn.prop('disabled', false).text('Register');}});}function showSuccess() {var mastheadHeight = $('#tns-header-masthead').length ? $('#tns-header-masthead').outerHeight() : 0;var adminBarHeight = $('#wpadminbar').length ? $('#wpadminbar').outerHeight() : 0;var padding = $(window).width() > 1024 ? 120 : 50;$('html, body').animate({ scrollTop: $('.airmeet-container').offset().top - mastheadHeight - adminBarHeight - padding }, 300, function() {$('.airmeet-registration-form').attr('hidden', true).hide();if ( $('.airmeet-video').length ) {// Video embed, prepare the iframe and show.$('.airmeet-video iframe').attr('src', $('.airmeet-video iframe').attr('data-src'));$('.airmeet-video').show().removeAttr('hidden');} else {// Thank you screen.$('.airmeet-success').removeAttr('hidden').hide().fadeIn();}});}}); At first, you might dedicate more resources to your Postgres system. You could optimize your queries or partition your data into smaller tables. Or you could tune up autovacuum and regularly rebuild bloated indexes. You might even purchase more expensive hardware for your system. At some point though, you’ll have to ask yourself, “How much engineering effort do I really want to devote to my current setup?”Next, you may be tempted to abandon Postgres altogether to avoid so many engineering struggles. Switching to a specialized system might feel inevitable and even satisfying at first, but it can lead to potentially expensive migration work.You’ll have a new database to learn, which may mean you and your team need to learn a new query language or API. You may need to maintain duplicate data in both Postgres and the new setup for a while as you validate things. As daunting as that feels, keeping Postgres starts to look more appealing.Instead of ripping everything out, you can change how Postgres handles your data. And there’s more than one way to rethink your Postgres architecture. For example, newer approaches such as Databricks Lakebase separate compute from storage. This lets each piece scale independently while keeping Postgres at the core. Or if you’re feeling the pressure of large-scale time-series workloads, you can extend Postgres itself with TimescaleDB from Tiger Data. It leverages hypertables, columnar compression, and continuous aggregates to change how Postgres stores, queries, and summarizes demanding volumes of time-series data.In this October 21 webinar, you’ll learn how vanilla Postgres handles high ingestion rates and how TimescaleDB offers an alternative to a costly database migration. Matty Stratton of Tiger Data joins us live in “Postgres at Scale: What Breaks (and What Doesn’t) When Live Data Grows.” He’ll demonstrate TimescaleDB and walk through how to identify where your Postgres system is starting to strain, what tuning can still solve, and when it might be time to consider a different approach.Worried your Postgres system is showing signs of wear and tear? Register now to learn what to watch for and what to do when Postgres starts to struggle.The post Postgres is struggling, but don’t rip it out just yet appeared first on The New Stack.