"}},"componentScriptGroups({\"componentId\":\"custom.widget.MicrosoftFooter\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/OverflowNav\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/OverflowNav-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewInline\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMore\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageUnreadCount\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageUnreadCount-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageViewCount\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageViewCount-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/kudos/KudosCount\"]})":[{"__ref":"CachedAsset:text:en_US-components/kudos/KudosCount-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageRepliesCount\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageRepliesCount-1744658874334"}],"cachedText({\"lastModified\":\"1744658874334\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1744658874334"}]},"CachedAsset:pages-1744407424976":{"__typename":"CachedAsset","id":"pages-1744407424976","value":[{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"UserBlogPermissions.Page","type":"COMMUNITY","urlPath":"/c/user-blog-permissions/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"AllEvents","type":"CUSTOM","urlPath":"/Events","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"CommunityHub.Page","type":"CUSTOM","urlPath":"/Directory","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"AllBlogs.Page","type":"CUSTOM","urlPath":"/blogs","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744407424976,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Deleted","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"false","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MMM dd yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"CachedAsset:theme:customTheme1-1744407424407":{"__typename":"CachedAsset","id":"theme:customTheme1-1744407424407","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["default"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"favicon-1730836283320.png","imageLastModified":"1730836286415","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"favicon-1730836271365.png","imageLastModified":"1730836274203","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1300px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"3px","borderRadius":"3px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"700","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-gray-900)","secondaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-200)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-gray-900)","tertiaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"LIGHT","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.16)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.12)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"400","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#4099E2","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#148563","blogColor":"#1CBAA0","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#4C6B90","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#333333","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#717171","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#0069D4","secondary":"#333333","bodyText":"#1E1E1E","bodyBg":"#FFFFFF","info":"#409AE2","success":"#41C5AE","warning":"#FCC844","danger":"#BC341B","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#D3F5A4","#243A5E"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Segoe UI","fontStyle":"NORMAL","fontWeight":"400","h1FontSize":"34px","h2FontSize":"32px","h3FontSize":"28px","h4FontSize":"24px","h5FontSize":"20px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":"","imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"10px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"10px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Segoe UI","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[{"source":"SERVER","name":"Segoe UI","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"300","__typename":"FontStyleData"},{"style":"NORMAL","weight":"600","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"},{"style":"ITALIC","weight":"400","__typename":"FontStyleData"}],"assetNames":["SegoeUI-normal-400.woff2","SegoeUI-normal-300.woff2","SegoeUI-normal-600.woff2","SegoeUI-normal-700.woff2","SegoeUI-italic-400.woff2"],"__typename":"CustomFont"},{"source":"SERVER","name":"MWF Fluent Icons","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"}],"assetNames":["MWFFluentIcons-normal-400.woff2"],"__typename":"CustomFont"}],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1744658874334","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1744658874334","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:text:en_US-pages/tags/TagPage-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-pages/tags/TagPage-1744658874334","value":{"tagPageTitle":"Tag:\"{tagName}\" | {communityTitle}","tagPageForNodeTitle":"Tag:\"{tagName}\" in \"{title}\" | {communityTitle}","name":"Tags Page","tag":"Tag: {tagName}"},"localOverride":false},"Category:category:AzureDatabases":{"__typename":"Category","id":"category:AzureDatabases","entityType":"CATEGORY","displayId":"AzureDatabases","nodeType":"category","depth":3,"title":"Azure Data","shortTitle":"Azure Data","parent":{"__ref":"Category:category:products-services"}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top"},"Category:category:communities":{"__typename":"Category","id":"category:communities","displayId":"communities","nodeType":"category","depth":1,"parent":{"__ref":"Category:category:top"},"title":"Communities"},"Category:category:products-services":{"__typename":"Category","id":"category:products-services","displayId":"products-services","nodeType":"category","depth":2,"parent":{"__ref":"Category:category:communities"},"title":"Products"},"Blog:board:ADforPostgreSQL":{"__typename":"Blog","id":"board:ADforPostgreSQL","entityType":"BLOG","displayId":"ADforPostgreSQL","nodeType":"board","depth":4,"conversationStyle":"BLOG","title":"Azure Database for PostgreSQL Blog","description":"","avatar":null,"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:AzureDatabases"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:gxcuf89792"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:communities"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:products-services"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:AzureDatabases"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"shortTitle":"Azure Database for PostgreSQL Blog","tagPolicies":{"__typename":"TagPolicies","canSubscribeTagOnNode":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.labels.action.corenode.subscribe_labels.allow.accessDenied","key":"error.lithium.policies.labels.action.corenode.subscribe_labels.allow.accessDenied","args":[]}},"canManageTagDashboard":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.labels.action.corenode.admin_labels.allow.accessDenied","key":"error.lithium.policies.labels.action.corenode.admin_labels.allow.accessDenied","args":[]}}}},"CachedAsset:quilt:o365.prod:pages/tags/TagPage:board:ADforPostgreSQL-1744984043166":{"__typename":"CachedAsset","id":"quilt:o365.prod:pages/tags/TagPage:board:ADforPostgreSQL-1744984043166","value":{"id":"TagPage","container":{"id":"Common","headerProps":{"removeComponents":["community.widget.bannerWidget"],"__typename":"QuiltContainerSectionProps"},"items":[{"id":"tag-header-widget","layout":"ONE_COLUMN","bgColor":"var(--lia-bs-white)","showBorder":"BOTTOM","sectionEditLevel":"LOCKED","columnMap":{"main":[{"id":"tags.widget.TagsHeaderWidget","__typename":"QuiltComponent"}],"__typename":"OneSectionColumns"},"__typename":"OneColumnQuiltSection"},{"id":"messages-list-for-tag-widget","layout":"ONE_COLUMN","columnMap":{"main":[{"id":"messages.widget.messageListForNodeByRecentActivityWidget","props":{"viewVariant":{"type":"inline","props":{"useUnreadCount":true,"useViewCount":true,"useAuthorLogin":true,"clampBodyLines":3,"useAvatar":true,"useBoardIcon":false,"useKudosCount":true,"usePreviewMedia":true,"useTags":false,"useNode":true,"useNodeLink":true,"useTextBody":true,"truncateBodyLength":-1,"useBody":true,"useRepliesCount":true,"useSolvedBadge":true,"timeStampType":"conversation.lastPostingActivityTime","useMessageTimeLink":true,"clampSubjectLines":2}},"panelType":"divider","useTitle":false,"hideIfEmpty":false,"pagerVariant":{"type":"loadMore"},"style":"list","showTabs":true,"tabItemMap":{"default":{"mostRecent":true,"mostRecentUserContent":false,"newest":false},"additional":{"mostKudoed":true,"mostViewed":true,"mostReplies":false,"noReplies":false,"noSolutions":false,"solutions":false}}},"__typename":"QuiltComponent"}],"__typename":"OneSectionColumns"},"__typename":"OneColumnQuiltSection"}],"__typename":"QuiltContainer"},"__typename":"Quilt"},"localOverride":false},"CachedAsset:quiltWrapper:o365.prod:Common:1744407232151":{"__typename":"CachedAsset","id":"quiltWrapper:o365.prod:Common:1744407232151","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":true,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"className":"QuiltComponent_lia-component-edit-mode__0nCcm","links":{"sideLinks":[],"mainLinks":[{"children":[],"linkType":"INTERNAL","id":"gxcuf89792","params":{},"routeName":"CommunityPage"},{"children":[],"linkType":"EXTERNAL","id":"external-link","url":"/Directory","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft365","params":{"categoryId":"microsoft365"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-teams","params":{"categoryId":"MicrosoftTeams"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows","params":{"categoryId":"Windows"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-securityand-compliance","params":{"categoryId":"microsoft-security"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"outlook","params":{"categoryId":"Outlook"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"planner","params":{"categoryId":"Planner"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows-server","params":{"categoryId":"Windows-Server"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"azure","params":{"categoryId":"Azure"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"exchange","params":{"categoryId":"Exchange"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-endpoint-manager","params":{"categoryId":"microsoft-endpoint-manager"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"s-q-l-server","params":{"categoryId":"SQL-Server"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-2","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities","url":"/","target":"BLANK"},{"children":[{"linkType":"INTERNAL","id":"education-sector","params":{"categoryId":"EducationSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"a-i","params":{"categoryId":"AI"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"i-t-ops-talk","params":{"categoryId":"ITOpsTalk"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"partner-community","params":{"categoryId":"PartnerCommunity"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-mechanics","params":{"categoryId":"MicrosoftMechanics"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"healthcare-and-life-sciences","params":{"categoryId":"HealthcareAndLifeSciences"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"public-sector","params":{"categoryId":"PublicSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"io-t","params":{"categoryId":"IoT"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"driving-adoption","params":{"categoryId":"DrivingAdoption"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"s-m-b","params":{"categoryId":"SMB"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"startupsat-microsoft","params":{"categoryId":"StartupsatMicrosoft"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-1","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities-1","url":"/","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external","url":"/Blogs","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external-1","url":"/Events","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft-learn-1","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-learn-blog","params":{"boardId":"MicrosoftLearnBlog","categoryId":"MicrosoftLearn"},"routeName":"BlogBoardPage"},{"linkType":"EXTERNAL","id":"external-10","url":"https://learningroomdirectory.microsoft.com/","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-3","url":"https://docs.microsoft.com/learn/dynamics365/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-4","url":"https://docs.microsoft.com/learn/m365/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-5","url":"https://docs.microsoft.com/learn/topics/sci/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-6","url":"https://docs.microsoft.com/learn/powerplatform/?wt.mc_id=techcom_header-webpage-powerplatform","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-7","url":"https://docs.microsoft.com/learn/github/?wt.mc_id=techcom_header-webpage-github","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-8","url":"https://docs.microsoft.com/learn/teams/?wt.mc_id=techcom_header-webpage-teams","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-9","url":"https://docs.microsoft.com/learn/dotnet/?wt.mc_id=techcom_header-webpage-dotnet","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-2","url":"https://docs.microsoft.com/learn/azure/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"}],"linkType":"INTERNAL","id":"microsoft-learn","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"children":[],"linkType":"INTERNAL","id":"community-info-center","params":{"categoryId":"Community-Info-Center"},"routeName":"CategoryPage"}]},"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","controllerHighlightColor":"hsla(30, 100%, 50%)","linkFontWeight":"400","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkBoxShadowHover":"none","linkFontSize":"14px","backgroundOpacity":0.8,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","hamburgerColor":"var(--lia-nav-controller-icon-color)","linkTextBorderBottom":"none","brandLogoHeight":"30px","linkBgHoverColor":"transparent","linkLetterSpacing":"normal","collapseMenuDividerOpacity":0.16,"dropdownPaddingBottom":"15px","paddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","collapseMenuDividerBg":"var(--lia-nav-link-color)","linkColor":"var(--lia-bs-body-color)","linkJustifyContent":"flex-start","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-body-color)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"2px solid var(--lia-bs-body-color)","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","linkPaddingX":"10px","linkPaddingY":"5px","paddingTop":"15px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkBgColor":"transparent","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"showSearchIcon":false,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":{"backgroundColor":"transparent","linkHighlightColor":"var(--lia-bs-primary)","visualEffects":{"showBottomBorder":true},"linkTextColor":"var(--lia-bs-gray-700)"},"__typename":"QuiltComponent"},{"id":"custom.widget.community_banner","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"usePageWidth":false,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.HeroBanner","props":{"widgetVisibility":"signedInOrAnonymous","usePageWidth":false,"useTitle":true,"cMax_items":3,"useBackground":false,"title":"","lazyLoad":false,"widgetChooser":"custom.widget.HeroBanner"},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"custom.widget.MicrosoftFooter","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1744658874334","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"CachedAsset:component:custom.widget.community_banner-en-1744407457870":{"__typename":"CachedAsset","id":"component:custom.widget.community_banner-en-1744407457870","value":{"component":{"id":"custom.widget.community_banner","template":{"id":"community_banner","markupLanguage":"HANDLEBARS","style":".community-banner {\n a.top-bar.btn {\n top: 0px;\n width: 100%;\n z-index: 999;\n text-align: center;\n left: 0px;\n background: #0068b8;\n color: white;\n padding: 10px 0px;\n display: block;\n box-shadow: none !important;\n border: none !important;\n border-radius: none !important;\n margin: 0px !important;\n font-size: 14px;\n }\n}\n","texts":null,"defaults":{"config":{"applicablePages":[],"description":"community announcement text","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.community_banner","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"community announcement text","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_community_banner_community-banner_1x9u2_1 {\n a.custom_widget_community_banner_top-bar_1x9u2_2.custom_widget_community_banner_btn_1x9u2_2 {\n top: 0;\n width: 100%;\n z-index: 999;\n text-align: center;\n left: 0;\n background: #0068b8;\n color: white;\n padding: 0.625rem 0;\n display: block;\n box-shadow: none !important;\n border: none !important;\n border-radius: none !important;\n margin: 0 !important;\n font-size: 0.875rem;\n }\n}\n","tokens":{"community-banner":"custom_widget_community_banner_community-banner_1x9u2_1","top-bar":"custom_widget_community_banner_top-bar_1x9u2_2","btn":"custom_widget_community_banner_btn_1x9u2_2"}},"form":null},"localOverride":false},"CachedAsset:component:custom.widget.HeroBanner-en-1744407457870":{"__typename":"CachedAsset","id":"component:custom.widget.HeroBanner-en-1744407457870","value":{"component":{"id":"custom.widget.HeroBanner","template":{"id":"HeroBanner","markupLanguage":"REACT","style":null,"texts":{"searchPlaceholderText":"Search this community","followActionText":"Follow","unfollowActionText":"Following","searchOnHoverText":"Please enter your search term(s) and then press return key to complete a search.","blogs.sidebar.pagetitle":"Latest Blogs | Microsoft Tech Community","followThisNode":"Follow this node","unfollowThisNode":"Unfollow this node"},"defaults":{"config":{"applicablePages":[],"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.HeroBanner","form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"__typename":"Component","localOverride":false},"globalCss":null,"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"}},"localOverride":false},"CachedAsset:component:custom.widget.MicrosoftFooter-en-1744407457870":{"__typename":"CachedAsset","id":"component:custom.widget.MicrosoftFooter-en-1744407457870","value":{"component":{"id":"custom.widget.MicrosoftFooter","template":{"id":"MicrosoftFooter","markupLanguage":"HANDLEBARS","style":".context-uhf {\n min-width: 280px;\n font-size: 15px;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n & *,\n & *:before,\n & *:after {\n box-sizing: inherit;\n }\n a.c-uhff-link {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n &a:link,\n &a:focus,\n &a:hover,\n &a:active,\n &a:visited {\n text-decoration: none;\n color: inherit;\n }\n & div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.c-uhff {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.c-uhff-nav {\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n &:before,\n &:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n .c-heading-4 {\n color: #616161;\n word-break: break-word;\n font-size: 15px;\n line-height: 20px;\n padding: 36px 0 4px;\n font-weight: 600;\n }\n .c-uhff-nav-row {\n .c-uhff-nav-group {\n display: block;\n float: left;\n min-height: 1px;\n vertical-align: text-top;\n padding: 0 12px;\n width: 100%;\n zoom: 1;\n &:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.c-list.f-bare {\n font-size: 11px;\n line-height: 16px;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 8px 0;\n margin: 0;\n }\n }\n }\n }\n}\n.c-uhff-base {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 30px 5% 16px;\n &:before,\n &:after {\n content: ' ';\n display: table;\n }\n &:after {\n clear: both;\n }\n a.c-uhff-ccpa {\n font-size: 11px;\n line-height: 16px;\n float: left;\n margin: 3px 0;\n }\n a.c-uhff-ccpa:hover {\n text-decoration: underline;\n }\n ul.c-list {\n font-size: 11px;\n line-height: 16px;\n float: right;\n margin: 3px 0;\n color: #616161;\n li {\n padding: 0 24px 4px 0;\n display: inline-block;\n }\n }\n .c-list.f-bare {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 30px 24px 16px;\n }\n}\n\n.social-share {\n position: fixed;\n top: 60%;\n transform: translateY(-50%);\n left: 0;\n z-index: 1000;\n}\n\n.sharing-options {\n list-style: none;\n padding: 0;\n margin: 0;\n display: block;\n flex-direction: column;\n background-color: white;\n width: 43px;\n border-radius: 0px 7px 7px 0px;\n}\n.linkedin-icon {\n border-top-right-radius: 7px;\n}\n.linkedin-icon:hover {\n border-radius: 0;\n}\n.social-share-rss-image {\n border-bottom-right-radius: 7px;\n}\n.social-share-rss-image:hover {\n border-radius: 0;\n}\n\n.social-link-footer {\n position: relative;\n display: block;\n margin: -2px 0;\n transition: all 0.2s ease;\n}\n.social-link-footer:hover .linkedin-icon {\n border-radius: 0;\n}\n.social-link-footer:hover .social-share-rss-image {\n border-radius: 0;\n}\n\n.social-link-footer img {\n width: 40px;\n height: auto;\n transition: filter 0.3s ease;\n}\n\n.social-share-list {\n width: 40px;\n}\n.social-share-rss-image {\n width: 40px;\n}\n\n.share-icon {\n border: 2px solid transparent;\n display: inline-block;\n position: relative;\n}\n\n.share-icon:hover {\n opacity: 1;\n border: 2px solid white;\n box-sizing: border-box;\n}\n\n.share-icon:hover .label {\n opacity: 1;\n visibility: visible;\n border: 2px solid white;\n box-sizing: border-box;\n border-left: none;\n}\n\n.label {\n position: absolute;\n left: 100%;\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease;\n color: white;\n border-radius: 0 10 0 10px;\n top: 50%;\n transform: translateY(-50%);\n height: 40px;\n border-radius: 0 6px 6px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px 5px 20px 8px;\n margin-left: -1px;\n}\n.linkedin {\n background-color: #0474b4;\n}\n.facebook {\n background-color: #3c5c9c;\n}\n.twitter {\n background-color: white;\n color: black;\n}\n.reddit {\n background-color: #fc4404;\n}\n.mail {\n background-color: #848484;\n}\n.bluesky {\n background-color: white;\n color: black;\n}\n.rss {\n background-color: #ec7b1c;\n}\n#RSS {\n width: 40px;\n height: 40px;\n}\n\n@media (max-width: 991px) {\n .social-share {\n display: none;\n }\n}\n","texts":{"New tab":"What's New","New 1":"Surface Laptop Studio 2","New 2":"Surface Laptop Go 3","New 3":"Surface Pro 9","New 4":"Surface Laptop 5","New 5":"Surface Studio 2+","New 6":"Copilot in Windows","New 7":"Microsoft 365","New 8":"Windows 11 apps","Store tab":"Microsoft Store","Store 1":"Account Profile","Store 2":"Download Center","Store 3":"Microsoft Store Support","Store 4":"Returns","Store 5":"Order tracking","Store 6":"Certified Refurbished","Store 7":"Microsoft Store Promise","Store 8":"Flexible Payments","Education tab":"Education","Edu 1":"Microsoft in education","Edu 2":"Devices for education","Edu 3":"Microsoft Teams for Education","Edu 4":"Microsoft 365 Education","Edu 5":"How to buy for your school","Edu 6":"Educator Training and development","Edu 7":"Deals for students and parents","Edu 8":"Azure for students","Business tab":"Business","Bus 1":"Microsoft Cloud","Bus 2":"Microsoft Security","Bus 3":"Dynamics 365","Bus 4":"Microsoft 365","Bus 5":"Microsoft Power Platform","Bus 6":"Microsoft Teams","Bus 7":"Microsoft Industry","Bus 8":"Small Business","Developer tab":"Developer & IT","Dev 1":"Azure","Dev 2":"Developer Center","Dev 3":"Documentation","Dev 4":"Microsoft Learn","Dev 5":"Microsoft Tech Community","Dev 6":"Azure Marketplace","Dev 7":"AppSource","Dev 8":"Visual Studio","Company tab":"Company","Com 1":"Careers","Com 2":"About Microsoft","Com 3":"Company News","Com 4":"Privacy at Microsoft","Com 5":"Investors","Com 6":"Diversity and inclusion","Com 7":"Accessiblity","Com 8":"Sustainibility"},"defaults":{"config":{"applicablePages":[],"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.MicrosoftFooter","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_MicrosoftFooter_context-uhf_105bp_1 {\n min-width: 17.5rem;\n font-size: 0.9375rem;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n & *,\n & *:before,\n & *:after {\n box-sizing: inherit;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-link_105bp_12 {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n &a:link,\n &a:focus,\n &a:hover,\n &a:active,\n &a:visited {\n text-decoration: none;\n color: inherit;\n }\n & div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff_105bp_12 {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.custom_widget_MicrosoftFooter_c-uhff-nav_105bp_35 {\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n &:before,\n &:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n .custom_widget_MicrosoftFooter_c-heading-4_105bp_49 {\n color: #616161;\n word-break: break-word;\n font-size: 0.9375rem;\n line-height: 1.25rem;\n padding: 2.25rem 0 0.25rem;\n font-weight: 600;\n }\n .custom_widget_MicrosoftFooter_c-uhff-nav-row_105bp_57 {\n .custom_widget_MicrosoftFooter_c-uhff-nav-group_105bp_58 {\n display: block;\n float: left;\n min-height: 0.0625rem;\n vertical-align: text-top;\n padding: 0 0.75rem;\n width: 100%;\n zoom: 1;\n &:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.custom_widget_MicrosoftFooter_c-list_105bp_78.custom_widget_MicrosoftFooter_f-bare_105bp_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 0.5rem 0;\n margin: 0;\n }\n }\n }\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff-base_105bp_94 {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 1.875rem 5% 1rem;\n &:before,\n &:after {\n content: ' ';\n display: table;\n }\n &:after {\n clear: both;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_105bp_107 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: left;\n margin: 0.1875rem 0;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_105bp_107:hover {\n text-decoration: underline;\n }\n ul.custom_widget_MicrosoftFooter_c-list_105bp_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: right;\n margin: 0.1875rem 0;\n color: #616161;\n li {\n padding: 0 1.5rem 0.25rem 0;\n display: inline-block;\n }\n }\n .custom_widget_MicrosoftFooter_c-list_105bp_78.custom_widget_MicrosoftFooter_f-bare_105bp_78 {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 1.875rem 1.5rem 1rem;\n }\n}\n.custom_widget_MicrosoftFooter_social-share_105bp_138 {\n position: fixed;\n top: 60%;\n transform: translateY(-50%);\n left: 0;\n z-index: 1000;\n}\n.custom_widget_MicrosoftFooter_sharing-options_105bp_146 {\n list-style: none;\n padding: 0;\n margin: 0;\n display: block;\n flex-direction: column;\n background-color: white;\n width: 2.6875rem;\n border-radius: 0 0.4375rem 0.4375rem 0;\n}\n.custom_widget_MicrosoftFooter_linkedin-icon_105bp_156 {\n border-top-right-radius: 7px;\n}\n.custom_widget_MicrosoftFooter_linkedin-icon_105bp_156:hover {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162 {\n border-bottom-right-radius: 7px;\n}\n.custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162:hover {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169 {\n position: relative;\n display: block;\n margin: -0.125rem 0;\n transition: all 0.2s ease;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169:hover .custom_widget_MicrosoftFooter_linkedin-icon_105bp_156 {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169:hover .custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162 {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169 img {\n width: 2.5rem;\n height: auto;\n transition: filter 0.3s ease;\n}\n.custom_widget_MicrosoftFooter_social-share-list_105bp_188 {\n width: 2.5rem;\n}\n.custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162 {\n width: 2.5rem;\n}\n.custom_widget_MicrosoftFooter_share-icon_105bp_195 {\n border: 2px solid transparent;\n display: inline-block;\n position: relative;\n}\n.custom_widget_MicrosoftFooter_share-icon_105bp_195:hover {\n opacity: 1;\n border: 2px solid white;\n box-sizing: border-box;\n}\n.custom_widget_MicrosoftFooter_share-icon_105bp_195:hover .custom_widget_MicrosoftFooter_label_105bp_207 {\n opacity: 1;\n visibility: visible;\n border: 2px solid white;\n box-sizing: border-box;\n border-left: none;\n}\n.custom_widget_MicrosoftFooter_label_105bp_207 {\n position: absolute;\n left: 100%;\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease;\n color: white;\n border-radius: 0 10 0 0.625rem;\n top: 50%;\n transform: translateY(-50%);\n height: 2.5rem;\n border-radius: 0 0.375rem 0.375rem 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.25rem 0.3125rem 1.25rem 0.5rem;\n margin-left: -0.0625rem;\n}\n.custom_widget_MicrosoftFooter_linkedin_105bp_156 {\n background-color: #0474b4;\n}\n.custom_widget_MicrosoftFooter_facebook_105bp_237 {\n background-color: #3c5c9c;\n}\n.custom_widget_MicrosoftFooter_twitter_105bp_240 {\n background-color: white;\n color: black;\n}\n.custom_widget_MicrosoftFooter_reddit_105bp_244 {\n background-color: #fc4404;\n}\n.custom_widget_MicrosoftFooter_mail_105bp_247 {\n background-color: #848484;\n}\n.custom_widget_MicrosoftFooter_bluesky_105bp_250 {\n background-color: white;\n color: black;\n}\n.custom_widget_MicrosoftFooter_rss_105bp_254 {\n background-color: #ec7b1c;\n}\n#custom_widget_MicrosoftFooter_RSS_105bp_1 {\n width: 2.5rem;\n height: 2.5rem;\n}\n@media (max-width: 991px) {\n .custom_widget_MicrosoftFooter_social-share_105bp_138 {\n display: none;\n }\n}\n","tokens":{"context-uhf":"custom_widget_MicrosoftFooter_context-uhf_105bp_1","c-uhff-link":"custom_widget_MicrosoftFooter_c-uhff-link_105bp_12","c-uhff":"custom_widget_MicrosoftFooter_c-uhff_105bp_12","c-uhff-nav":"custom_widget_MicrosoftFooter_c-uhff-nav_105bp_35","c-heading-4":"custom_widget_MicrosoftFooter_c-heading-4_105bp_49","c-uhff-nav-row":"custom_widget_MicrosoftFooter_c-uhff-nav-row_105bp_57","c-uhff-nav-group":"custom_widget_MicrosoftFooter_c-uhff-nav-group_105bp_58","c-list":"custom_widget_MicrosoftFooter_c-list_105bp_78","f-bare":"custom_widget_MicrosoftFooter_f-bare_105bp_78","c-uhff-base":"custom_widget_MicrosoftFooter_c-uhff-base_105bp_94","c-uhff-ccpa":"custom_widget_MicrosoftFooter_c-uhff-ccpa_105bp_107","social-share":"custom_widget_MicrosoftFooter_social-share_105bp_138","sharing-options":"custom_widget_MicrosoftFooter_sharing-options_105bp_146","linkedin-icon":"custom_widget_MicrosoftFooter_linkedin-icon_105bp_156","social-share-rss-image":"custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162","social-link-footer":"custom_widget_MicrosoftFooter_social-link-footer_105bp_169","social-share-list":"custom_widget_MicrosoftFooter_social-share-list_105bp_188","share-icon":"custom_widget_MicrosoftFooter_share-icon_105bp_195","label":"custom_widget_MicrosoftFooter_label_105bp_207","linkedin":"custom_widget_MicrosoftFooter_linkedin_105bp_156","facebook":"custom_widget_MicrosoftFooter_facebook_105bp_237","twitter":"custom_widget_MicrosoftFooter_twitter_105bp_240","reddit":"custom_widget_MicrosoftFooter_reddit_105bp_244","mail":"custom_widget_MicrosoftFooter_mail_105bp_247","bluesky":"custom_widget_MicrosoftFooter_bluesky_105bp_250","rss":"custom_widget_MicrosoftFooter_rss_105bp_254","RSS":"custom_widget_MicrosoftFooter_RSS_105bp_1"}},"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1744658874334","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagsHeaderWidget-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagsHeaderWidget-1744658874334","value":{"tag":"{tagName}","topicsCount":"{count} {count, plural, one {Topic} other {Topics}}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1744658874334","value":{"title@userScope:other":"Recent Content","title@userScope:self":"Contributions","title@board:FORUM@userScope:other":"Recent Discussions","title@board:BLOG@userScope:other":"Recent Blogs","emptyDescription":"No content to show","MessageListForNodeByRecentActivityWidgetEditor.nodeScope.label":"Scope","title@instance:1722894000155":"Recent Discussions","title@instance:1727367112619":"Recent Blog Articles","title@instance:1727367069748":"Recent Discussions","title@instance:1727366213114":"Latest Discussions","title@instance:1727899609720":"","title@instance:1727363308925":"Latest Discussions","title@instance:1737115580352":"Latest Articles","title@instance:1720453418992":"Recent Discssions","title@instance:1727365950181":"Latest Blog Articles","title@instance:bmDPnI":"Latest Blog Articles","title@instance:IiDDJZ":"Latest Blog Articles","title@instance:1721244347979":"Latest blog posts","title@instance:1728383752171":"Related Content","title@instance:1722893956545":"Latest Skilling Resources","title@instance:dhcgCU":"Latest Discussions"},"localOverride":false},"Category:category:Exchange":{"__typename":"Category","id":"category:Exchange","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Planner":{"__typename":"Category","id":"category:Planner","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Outlook":{"__typename":"Category","id":"category:Outlook","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Community-Info-Center":{"__typename":"Category","id":"category:Community-Info-Center","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:EducationSector":{"__typename":"Category","id":"category:EducationSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:DrivingAdoption":{"__typename":"Category","id":"category:DrivingAdoption","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Azure":{"__typename":"Category","id":"category:Azure","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows-Server":{"__typename":"Category","id":"category:Windows-Server","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:SQL-Server":{"__typename":"Category","id":"category:SQL-Server","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftTeams":{"__typename":"Category","id":"category:MicrosoftTeams","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PublicSector":{"__typename":"Category","id":"category:PublicSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft365":{"__typename":"Category","id":"category:microsoft365","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:IoT":{"__typename":"Category","id":"category:IoT","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:HealthcareAndLifeSciences":{"__typename":"Category","id":"category:HealthcareAndLifeSciences","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:SMB":{"__typename":"Category","id":"category:SMB","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:ITOpsTalk":{"__typename":"Category","id":"category:ITOpsTalk","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft-endpoint-manager":{"__typename":"Category","id":"category:microsoft-endpoint-manager","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftLearn":{"__typename":"Category","id":"category:MicrosoftLearn","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Blog:board:MicrosoftLearnBlog":{"__typename":"Blog","id":"board:MicrosoftLearnBlog","blogPolicies":{"__typename":"BlogPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:AI":{"__typename":"Category","id":"category:AI","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftMechanics":{"__typename":"Category","id":"category:MicrosoftMechanics","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:StartupsatMicrosoft":{"__typename":"Category","id":"category:StartupsatMicrosoft","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PartnerCommunity":{"__typename":"Category","id":"category:PartnerCommunity","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows":{"__typename":"Category","id":"category:Windows","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft-security":{"__typename":"Category","id":"category:microsoft-security","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Conversation:conversation:4373860":{"__typename":"Conversation","id":"conversation:4373860","topic":{"__typename":"BlogTopicMessage","uid":4373860},"lastPostingActivityTime":"2025-02-04T12:26:14.070-08:00","solved":false},"User:user:415380":{"__typename":"User","uid":415380,"login":"clairegiordano","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS00MTUzODAtNTAzNTY2aTE2MDVDMjM4MTJGNkM3Mzc"},"id":"user:415380"},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLWltbnA4cw?revision=3\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLWltbnA4cw?revision=3","title":"POSETTE-CFP-is-open-until-Feb-9th-2025-1200x690.png","associationType":"COVER","width":1200,"height":690,"altText":""},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLTJYNERGTA?revision=3\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLTJYNERGTA?revision=3","title":"POSETTE-CFP-2025-topics-1920x1080-v2.png","associationType":"BODY","width":1920,"height":1080,"altText":""},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLUdsSEdVdw?revision=3\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLUdsSEdVdw?revision=3","title":"POSETTE-CFP-2025-invited-submit-cfp-social-1920x1080.png","associationType":"BODY","width":1920,"height":1080,"altText":""},"BlogTopicMessage:message:4373860":{"__typename":"BlogTopicMessage","subject":"CFP talk proposal ideas for POSETTE: An Event for Postgres 2025","conversation":{"__ref":"Conversation:conversation:4373860"},"id":"message:4373860","revisionNum":3,"uid":4373860,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:415380"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":"","introduction":"","metrics":{"__typename":"MessageMetrics","views":166},"postTime":"2025-02-04T12:26:14.070-08:00","lastPublishTime":"2025-02-04T12:26:14.070-08:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" Some of you have been asking for advice about what to submit to the CFP for POSETTE: An Event for Postgres 2025. So this post aims to give you ideas that might help you submit a talk proposal (or 2, or 3) before the upcoming CFP deadline. \n If you’re not yet familiar with this conference, POSETTE: An Event for Postgres 2025 is a free & virtual developer event now in its 4th year, organized by the Postgres team at Microsoft. \n I love the virtual aspect of POSETTE because the conference talks are so accessible—for both speakers and attendees. If you’re a speaker, you don’t need travel budget $$—and you don’t have to leave home. Also, the talk you’ve poured all that energy into is not limited to the people in the room, and has the potential to reach so many more people. If you’re an attendee, well, all you need is an internet connection \n The CFP for POSETTE: An Event for Postgres will be open until Sunday Feb 9th at 11:59pm PST. So as of the publication date of this blog post, you still have time to submit a CFP proposal (or 2, or 3, or 4)—and to remind your Postgres teammates and friends of the speaking opportunity. \n If you have a Postgres experience, success story, failure, best practice, “how-to”, collection of tips, lesson about something that's new, or deep dive to share—not just about the core of Postgres, but about anything in the Postgres ecosystem, including extensions, and tooling, and monitoring—maybe you should consider submitting a talk proposal to the CFP for POSETTE. \n If you’re not sure about whether to give a conference talk, there are a boatload of reasons why you should. And there’s also a podcast episode with Álvaro Herrera, Boriss Mejías, and Pino de Candia that makes the case for why giving conference talks matters. For inspiration, you can also take a look at the playlist of POSETTE 2024 talks. \n And if you’re looking for even more CFP ideas, you’ve come to the right place! Read on… \n Ideas for talks you might propose in the POSETTE CFP \n On the CFP page there is a list of possible talk titles (screenshot below) you might submit—these are good ideas, although the list is by no means exhaustive, and we welcome talk proposals that are not on this list. \n \n Figure 1: POSETTE CFP talk topics taken from the CFP page on PosetteConf.com \n On Telegram the other day, when answering the question “Do you have any ideas of what I should submit?”, I found myself suggesting different TYPES of talks. Not specific ideas and talk titles, but rather I framed the different categories. So I decided to share these different “types” and “classes” of talks with all of you, in the hopes this might gives you a good talk proposal idea. \n First you need to pick your audience: Before you think about what type of talk to give, remember that the POSETTE team is focused on serving the needs of both the USER community—as well as the Postgres contributor & hacker communities. \n That means first you need to decide on your audience. Are you giving a talk for PostgreSQL users, or Azure Database for PostgreSQL customers, or the PostgreSQL contributor community? All are good choices. \n Then you need to decide: what do you want to accomplish with your talk? \n \n Do you want to skill up the Postgres hacker community?: If you want to help skill-up the developer/contributor community, maybe pick a part of Postgres that new contributors often ask a lot of questions about, get stuck on, need help with, etc—and give a “tour” of its mechanics, starting with the basics. \n Do you want to help grow the Postgres community?: If you want to help grow the Postgres community of contributors and developers, you could propose a talk that would motivate tomorrow's developers/contributors to get involved in the project. Imagine you were going to a university to give a talk about \"why work on Postgres\"… what would you say? And how would you entice people to work on Postgres? What pain points would you challenge them with? What benefits would you share from your own Postgres experience that might inspire these developers to think seriously about Postgres as a career path? You could also shine a light on the different ways people can (and do!) contribute to the Postgres community: from mentoring to translations to organizing conferences to podcasts to speaking at conferences to publishing PostgreSQL Person of the Week. \n Do you want to share your expertise with Postgres users?: If you want your talk to benefit users, maybe pick an area that you are already expert in (or want an excuse to dig into and learn about?) and create a Beginners Guide for it? Or Advanced Tips for it? Or Surprising Benefits of? Or Things People Might Not Know? Especially if there is a part of Postgres you feel like people sometimes mis-use, or don't take enough advantage of.... \n Do you want to share your customer experiences with Azure Database for PostgreSQL, or Postgres more generally?: Maybe you have a wild success story you think others will benefit from. Or you want to share a problem you had and how you used Postgres to solve it? People love customer stories. \n Do you want to shine a light on the broader Postgres ecosystem?: If you want to target users with your talk, don’t limit yourself the Postgres core. There is a rich ecosystem that surrounds Postgres and people need to understand the ecosystem, too. So maybe there are tools or Postgres extensions or forks or startups that you can give a useful talk about? \n Do you want to help experts in other database technologies learn about Postgres?: If you have expertise in other databases as well as Postgres, maybe you can help people who who are skilled in running workloads on other databases and are looking to skill up on Postgres—by helping them understand what’s similar, and what’s different. As if you’re giving them a dictionary to translate from their familiar database to Postgres, and vice versa. \n There are so many more possibilities: Often I look at the schedule from previous years to look for inspiration (and to make sure that my talk proposal is not a duplicate of a talk that’s already been given.) And I think about pain points, things people get confused about, or questions that come up a lot. Another thing to keep in mind: how can you help your story to \"stick\"? Can you make it entertaining? How do you share your story in a way that keeps people watching (versus looking at their phone instead?) \n \n Key things to know about POSETTE: An Event for Postgres 2025 \n \n CFP deadline: The CFP for POSETTE will close on Sunday, Feb 9th 2025 @ 11:59pm Pacific Time (PST) \n No travel required: free & virtual developer event \n Length of talks: 25 minutes/session \n Language: All talks will be in English \n Talks will be pre-recorded: All talks will be pre-recorded by the POSETTE team during the weeks of Apr 28th and May 5th (with accepted speakers presenting remotely) \n When is the event?: Jun 10-12, 2025 \n Format of the virtual event: All pre-recorded talks will be livestreamed in one of 4 unique livestreams on Jun 10-12, 2025—all with parallel live text chats on Discord. Two of the livestreams will be in Americas-friendly times of day (8:00am-2:00pm PDT) and two of the livestreams will be in EMEA-friendly times of day (8:00am-2:00pm CEST). All talks will be published online after the event is over. \n More info about the CFP: All the details, including key dates and how to submit on Sessionize, are spelled out on the CFP page for POSETTE 2025 \n Code-of-conduct: You can find the Code of Conduct for POSETTE online. Please help us to provide a respectful, friendly, and professional experience for everybody involved in this virtual conference. \n \n \n \n Figure 2: The CFP is open for POSETTE: An Event for Postgres 2025 until Sunday Feb 9th at 11:59pm PST. What Postgres story do you want to share? ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"7958","kudosSumWeight":6,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLWltbnA4cw?revision=3\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLTJYNERGTA?revision=3\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLUdsSEdVdw?revision=3\"}"}}],"totalCount":3,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":{"__typename":"UploadedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzczODYwLWltbnA4cw?revision=3"},"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:3897890":{"__typename":"Conversation","id":"conversation:3897890","topic":{"__typename":"BlogTopicMessage","uid":3897890},"lastPostingActivityTime":"2024-10-07T18:00:59.481-07:00","solved":false},"User:user:1595264":{"__typename":"User","uid":1595264,"login":"carolsmith","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0xNTk1MjY0LTQ1NTc1M2lGNEUyMDRGOUI0MkFBOEUx"},"id":"user:1595264"},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zODk3ODkwLTQ5NzQ0MGlDMkQ3OTYyOUFBMzU5NkU3?revision=18\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zODk3ODkwLTQ5NzQ0MGlDMkQ3OTYyOUFBMzU5NkU3?revision=18","title":"Latest-blog-post-episode06-PathToCitusCon-Youre-probably-already-using-Postgres-elephant-mascot-1200x675.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zODk3ODkwLTQ5NzQzNmlDN0MxNEI5RTc5QjRERTI1?revision=18\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zODk3ODkwLTQ5NzQzNmlDN0MxNEI5RTc5QjRERTI1?revision=18","title":"Figure1-Four-graphics-of-guests-and-hosts-for-episode06-path-to-citus-con-1920x1080 copy.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"BlogTopicMessage:message:3897890":{"__typename":"BlogTopicMessage","subject":"Episode 6 highlights of Path To Citus Con podcast w/Chelsea Dole & Floor Drees","conversation":{"__ref":"Conversation:conversation:3897890"},"id":"message:3897890","revisionNum":18,"uid":3897890,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:1595264"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n \n Favorite moments in the latest episode of Path To Citus Con, the new podcast for developers who love Postgres. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":2726},"postTime":"2023-08-11T15:35:42.974-07:00","lastPublishTime":"2024-10-07T18:00:59.481-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" The latest episode of Path To Citus Con—the monthly podcast for developers who love Postgres—is now out. This 6th episode featured guests Chelsea Dole and Floor Drees on the topic “You’re probably already using Postgres: What you need to know”. \n \n The conversation explored the app developer perspective on Postgres. Many of you app developers are already using Postgres, but perhaps on top of an ORM. If you want to optimize your application, if you want to better understand the underlying database: what do you need to know? And how do you remove the fear? This episode of Path To Citus Con, our new podcast for developers who love Postgres, focuses on opportunities for building your knowledge in the database internals space—whether you want to go breadth-first or depth-first. \n \n In this post, you’ll get a bit of backstory on the topic and the guests of Episode 06 of Path To Citus Con; and you’ll get a peek at highlights of a few interesting moments from the show. At the end of the post, you’ll find all the links of where you can listen to this and every episode of the podcast. Some people love these “human side of Postgres” podcast episodes—hopefully you will, too. \n \n You're probably already using Postgres: What you need to know \n \n Episode 06 with Chelsea Dole and Floor Drees gives those of you who are app developers a bunch of places to start on becoming Postgres-savvy. There’s discussion about the just one thing you can learn or look into, if you want to learn more about the underlying database. \n \n Guests Chelsea Dole (a Staff Software Engineer at Brex) and Floor Drees (a Staff Community Program Manager at Aiven)—along with hosts Claire Giordano and Pino de Candia—had a broad conversation about Postgres extensions that started from what they are, all the way to a showcase of some really useful extensions no matter the use case. And there’s also a much deeper discussion about what Chelsea called “depth-first” learning if you want to go beyond the first layer of learning. Both Chelsea and Floor come from non-traditional backgrounds to be where they are in their careers building and teaching others about Postgres. \n \n \n Key quotes & insights from Chelsea and Floor’s learning journey with Postgres \n \n \n “Database engineers are always few, far between, and kind of stressed. And so they’re always really thrilled to have people who are on the app development side asking questions and wanting to learn.” – Chelsea Dole \n \n Colleagues and coworkers often appreciate when others show interest in their work. Having done your research and wanting to learn more can lead to better collaborations and more successful launches. Everyone loves enthusiasm and passion about what they’re working on, particularly from people also willing to learn more from them. \n \n \n “There is so much strength in… Can I say ‘boring technology’? Boring is not a bad thing. Boring is solid. It just works.” – Floor Drees \n \n Technology that keeps the lights on at your company and the people who support that technology are sometimes underappreciated. New features and cutting-edge technology have their places, but “boring technology” does as well. Not everything needs to push boundaries, some things just need to push to production. \n \n \n “The number one thing that I think is helpful [to becoming more Postgres savvy] is trying to remove the fear that comes with working with databases as an app developer.” – Chelsea Dole \n \n Should you work to remove fear or face fear? Pushing yourself out of your comfort zone can look like facing the unknown, and it can also look like questioning your assumptions about what’s scaring you. Have places to feel safe and experiment and occasionally look outside those places to see what else is out there. \n \n \n “When you go on that learning journey, start teaching others early and often.” – Floor Drees \n \n No learning is really complete until you’ve shared it with others. Even the experts can find new ways to look at things when beginners ask the “obvious” questions. Floor highlights the importance of spending time getting your footing in new places along with bringing that learning to others. There’s often opportunities for sharing your own learning as much as possible in the future. \n \n All the links to this episode & previous podcast episodes of Path To Citus Con \n \n You can find the transcript for this episode with Chelsea and Floor (and for all the other episodes too) in the Transcripts tab on each episode page. \n \n The recorded episodes are all available now as podcasts on your favorite podcast platforms. \n \n The next episode will be recorded LIVE on Wednesday, September 6th at 10am PDT. If you want to be part of the live text chat on Discord that happens while the episode is being recorded (it’s fun), go ahead and mark your calendar for the September episode. That’s right, it’s a live show and a podcast!. Don’t stress the details, all the instructions for joining are in the cal invite itself. \n \n You can find Path To Citus Con, the podcast for developers who love Postgres, on: \n \n \n Apple Podcasts \n Spotify \n YouTube playlist of all Path To Citus Con episodes \n And many more podcast platforms \n \n You can also a take a look at the: \n \n Index of all past Path To Citus Con episodes \n You can subscribe to the calendar to know when all the future shows are coming up here. \n \n \n Thanks for listening! Since Path To Citus Con is a new podcast for Postgres people, we if you’re a fan please be sure to give us a rating and tell your friends. \n \n Attribution: This blog post by Carol Smith about Episode 6 highlights of the Path To Citus Con podcast (with guests Chelsea Dole & Floor Drees) was originally published on the Citus Open Source Blog. \n \n [Update: July 2024] Path To Citus Con has been renamed to Talking Postgres. All of the 16 podcast episodes from Path To Citus Con—now called Talking Postgres with Claire Giordano—can be found at TalkingPostgres.com. Read more about the podcast rename to Talking Postgres. ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"6152","kudosSumWeight":2,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zODk3ODkwLTQ5NzQ0MGlDMkQ3OTYyOUFBMzU5NkU3?revision=18\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zODk3ODkwLTQ5NzQzNmlDN0MxNEI5RTc5QjRERTI1?revision=18\"}"}}],"totalCount":2,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:3925345":{"__typename":"Conversation","id":"conversation:3925345","topic":{"__typename":"BlogTopicMessage","uid":3925345},"lastPostingActivityTime":"2024-10-07T18:00:25.251-07:00","solved":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTI1MzQ1LTUwNzE1NWlCQ0EwQjE1MTI3NDA5NzM5?revision=9\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTI1MzQ1LTUwNzE1NWlCQ0EwQjE1MTI3NDA5NzM5?revision=9","title":"Elephant-mascot-with-PathToCitusCon-podcast-logo-and-title-of-episode07-about-PostGIS.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTI1MzQ1LTUwNzE1N2kxRkM3MjQxRDdBRUE1NkI4?revision=9\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTI1MzQ1LTUwNzE1N2kxRkM3MjQxRDdBRUE1NkI4?revision=9","title":"Elephant-mascot-Path-To-Citus-Con-four-face-photos-episode07-why-people-care-about-postGIS-and-Postgres.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"BlogTopicMessage:message:3925345":{"__typename":"BlogTopicMessage","subject":"Episode 7 highlights of Path To Citus Con podcast w/Paul Ramsey & Regina Obe","conversation":{"__ref":"Conversation:conversation:3925345"},"id":"message:3925345","revisionNum":9,"uid":3925345,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:1595264"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n Favorite moments in this PostGIS-focused episode of Path To Citus Con, the podcast for developers who love Postgres. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":2121},"postTime":"2023-09-12T12:30:07.770-07:00","lastPublishTime":"2024-10-07T18:00:25.251-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" The latest episode of Path To Citus Con—the monthly podcast for developers who love Postgres—is now out. This episode featured guests Paul Ramsey and Regina Obe on the topic “Why people care about PostGIS and Postgres”. \n \n The conversation was all about PostGIS, a geospatial extension to Postgres which just happens to be one the most popular Postgres extensions. This episode was fairly technical, but still fascinating. The discussion ranged all the way from cartesian math at one point to how it’s very difficult to construct a database these days without a location component. This episode of Path To Citus Con focuses on the geospatial world of Postgres and shows how “where” is one of the fundamental things we all want to know about. \n \n In this post, you’ll get a bit of backstory on the topic and the guests—both with a long history with PostGIS—of this episode of Path To Citus Con; and you’ll get a peek at key moments from this show, including the extensibility of Postgres demonstrated by PostGIS, “where” as the universal foreign key, and more. At the end of the post, you’ll find links of where you can listen to this and every episode of the podcast. We hope you love these “human side of Postgres” podcast episodes. \n \n Why people care about PostGIS and Postgres \n \n Episode 07 with Paul Ramsey and Regina Obe gives those of you who are familiar with databases a deep dive into the PostGIS world. \n \n Guests Paul Ramsey (an Executive Engineer for Crunchy Data) and Regina Obe (President of Paragon Corporation)—along with hosts Claire Giordano and Pino de Candia—had a deep conversation about PostGIS, pgRouting, and the geospatial side of Postgres. And there’s also some tangents about Large Language Models in PostGIS as well as how to get started with the extension. Both Regina and Paul have been with PostGIS since its beginning and they describe lots of use cases for PostGIS that go far beyond mapping. \n \n \n \n Key quotes & insights from Paul and Regina’s history in PostGIS and Postgres \n \n \n “‘Where’ is the universal foreign key.” – Regina Obe \n \n Regina talks here about how some developers think of relational databases having hard foreign keys that can easily be joined. But she makes the point that you can also use “where” as a join. \n \n \n “It's very difficult to build a database that doesn’t have some sort of spatial component to it, even if you're not being explicit about it. You will be modeling objects that exist in the real world and they will have location and you can either not model that location—or you can model it—but if you do model it, PostGIS will help you do it. And [PostGIS] will help you ask and answer questions that otherwise you'd be unable to ask.” – Paul Ramsey \n \n Paul talks about the spatial aspects of databases a lot in this episode. Some of those objects in databases have locations in the real world and how PostGIS can help you do it. It will also help you ask and answer questions that you otherwise couldn’t ask of your model. \n \n \n “Even though the world is round, we need to model it as flat.” – Regina Obe \n \n Every model in PostGIS has a database and a graph behind it. Regina discusses the four-dimensional space modeled in PostGIS but backed by that same database. Anything that uses Cartesian math can be modeled here, even though it gets “flattened” into a database to do it. \n \n \n “I tend to say for people who are totally fresh and totally new to the geospatial world, actually start with qgis.org. QGIS is, in many respects, kind of an old school desktop GIS program, but because it's very visual, because it lets you see the maps and understand visually what you're doing it's a wonderful introduction to sort of the spatial gestalt before you get into writing SQL queries that use spatial functions.” – Paul Ramsey \n \n There’s a rich space in GIS that gets discussed in the episode, and QGIS is part of that. As Paul says, it’s a great place to get started if you’re new to the world. He specifically said if you’re completely fresh and new to the geospatial world, you may want to start with QGIS. \n \n \n “Having a real problem of your own is super important from a motivation point of view. The old “itch to scratch” is really core.” – Paul Ramsey \n \n Getting started with PostGIS is just like getting started with other codebases, and having a problem to solve is the best way to jump into it. Paul and Regina both talk in this episode about how to get started with PostGIS, and Paul specifically suggests you use code to solve those real-world issues you might have. \n \n \n “People in the Postgres community, like the developer community, care about [PostGIS] because we've been around as a major user of the Postgres core since 2001, before the extension system was even invented. And we have a surprisingly large user community.” – Paul Ramsey \n \n \n \n “The reason why PostGIS is important is because it demonstrated to the world how extensible Postgres is.” – Regina Obe \n \n PostGIS is the largest and most popular extension to Postgres. For over 20 years it has shown the power of extensions to Postgres and the communities that can be created around those extensions. Regina talks about her work with the project and coming to a powerful extension from the relational database world. \n \n Where to find the Path To Citus Con podcast episodes (and transcripts) \n \n You can find the transcript for this “Why people care about PostGIS and Postgres” episode with Paul and Regina on the Transcript tab on its episode page. \n \n All of the past episodes are all available now as podcasts on your favorite podcast platforms—as well as on YouTube. \n \n The next episode will be recorded live on Wed Oct 11 @ 10am PDT | 1pm EDT | 5pm UTC: \n \n Topic = “How I got started as a developer (&in Postgres) with Andres Freund and Heikki Linnakangas \n Calendar invite: To be part of the live text chat on Discord that happens in parallel to the live recording (it’s fun), mark your calendar. Don’t stress the details, all the instructions for joining the live show are in the cal invite. \n \n That’s right, it’s a live show and a podcast!. \n \n You can find published episodes for Path To Citus Con, the podcast for developers who love Postgres, on: \n \n Apple Podcasts \n Spotify \n YouTube \n And many more podcast platforms \n \n More useful links: \n \n Index of all past Path To Citus Con episodes \n Subscribe to the calendar to know when all the future shows are coming up here. \n \n \n Thanks for listening! Since Path To Citus Con is a new podcast for Postgres people, if you’re a fan please give us a rating and tell your friends. \n \n Attribution: This blog post by Carol Smith about Episode 7 highlights of the Path To Citus Con podcast (with guests Paul Ramsey & Regina Obe, about why people care about PostGIS and Postgres) was originally published on the Citus Open Source Blog. \n \n [Update: July 2024] Path To Citus Con has been renamed to Talking Postgres. All of the 16 podcast episodes from Path To Citus Con—now called Talking Postgres with Claire Giordano—can be found at TalkingPostgres.com. Read more about the podcast rename to Talking Postgres. ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"7328","kudosSumWeight":1,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTI1MzQ1LTUwNzE1NWlCQ0EwQjE1MTI3NDA5NzM5?revision=9\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTI1MzQ1LTUwNzE1N2kxRkM3MjQxRDdBRUE1NkI4?revision=9\"}"}}],"totalCount":2,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:3932264":{"__typename":"Conversation","id":"conversation:3932264","topic":{"__typename":"BlogTopicMessage","uid":3932264},"lastPostingActivityTime":"2024-10-07T17:59:55.012-07:00","solved":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTMyMjY0LTUwOTMyM2lCQzEwNUE1MTI3OTBFMEZE?revision=10\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTMyMjY0LTUwOTMyM2lCQzEwNUE1MTI3OTBFMEZE?revision=10","title":"Elephant-mascot-with-PathToCitusCon-podcast-logo-and-title-of-episode03-about-Postgres-conferences-1200x675.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTMyMjY0LTUwOTMyNWkwQTNDMDNGMThEQzk2MjFB?revision=10\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTMyMjY0LTUwOTMyNWkwQTNDMDNGMThEQzk2MjFB?revision=10","title":"YouTube-thumbnail-Path-To-Citus-Con-podcast-four-bio-pics-Claire-Pino-Boriss-Alvaro-why-give-talks-about-Postgres-conferences-1920x1080.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"BlogTopicMessage:message:3932264":{"__typename":"BlogTopicMessage","subject":"Why giving talks at Postgres conferences matters? Highlights from a podcast","conversation":{"__ref":"Conversation:conversation:3932264"},"id":"message:3932264","revisionNum":10,"uid":3932264,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:415380"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n Highlights from this conference-focused episode of the Path To Citus Con podcast for developers who love Postgres. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":2090},"postTime":"2023-09-20T09:59:25.523-07:00","lastPublishTime":"2024-10-07T17:59:55.012-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" With so many Postgres conferences coming up soon, it seemed fitting to share some highlights from a past episode of the Path To Citus Con about why to give talks at Postgres conferences. This episode was recorded back in May 2023 and shares an hourlong conversation between some wonderful Postgres engineers—Álvaro Herrera and Boriss Mejías—along with my co-host Pino de Candia and me. \n \n The guests both have deep roots in the community—Álvaro as a Postgres committer and Boriss as a frequent conference speaker as well as the organizer for the PgBE PostgreSQL User Group Belgium. And they have known each other for decades, since university days. As much as Alvaro and Boriss have in common, it’s interesting to hear them talk about their totally different approaches to giving talks at conferences. \n \n There’s also a point in the podcast where we explore whether it helps to be an introvert, or an extrovert, when it comes to giving conference talks. And how speaking at conferences can make it easier to meet people… after you’ve given a talk, people will often walk up to you and say “hey I saw your talk, I want to ask you about <insert PG topic here>”. \n \n At the end of the post, you’ll find links to podcast platforms where you can subscribe. And if you’re hooked, you might want to listen to some of the past episodes of the podcast, which have included conversations about: \n \n \n Why people care about PostGIS with Paul Ramsey and Regina Obe \n Favorite ways to learn more about Postgres with Ryan Booz and Grant Fritchey; \n How I got started as a developer and in Postgres, with Melanie Plageman and Thomas Munro; \n Working in public on open source, with Simon Willison and Marco Slot. \n And there’s more! \n \n \n Why giving talks at Postgres conferences matters \n Both Álvaro and Boriss have a long history with the Postgres community. And while they have different jobs, different skills, different presentation styles, and different opinions about things like whether a conference talk can or should be given multiple times—they both agree on this: It’s a good use of time to give talks at Postgres conferences. \n \n The perspectives shared in this podcast episode with Álvaro and Boriss apply not only to Postgres events, but to many open source developer conferences, too. \n \n Let’s dive into some interesting bits from the episode… \n \n rs.” \n \n Highlights from the episode with Boriss Mejías & Álvaro Herrera \n \n \n “I try to pay attention to the questions that are being asked by the customers. And when I do training, I also try to get the questions that come over and over and I say, ‘okay, maybe this is something that's worth talking about at a conference, to explain this to a broader audience.’” – Boriss Mejías \n \n Building talks from frequently-asked questions is a great way to derive content for conference talks. Boriss has many talks focused directly on the user or developer experience, and he provides a really personal perspective for the audience on everything he presents. \n \n \n “[As an introvert] when I'm at a conference it’s very useful to have given a talk so that people approach me and we can speak about my topic, and then I will ask, ‘What are you working on?’ And then conversation goes from there. So that's one thing I definitely like about giving talks, which is to let me connect.” – Álvaro Herrera \n \n Giving a talk at a conference, particularly if you’re an introvert, can be a bit uncomfortable. Even nerve-wracking. Álvaro talks about how he uses his conference speaking engagements as “icebreakers”— and how he especially likes giving one of the early talks at a conference, so he has the rest of the time left to connect with people. \n \n \n In the time of the pandemic, we were all doing webinars and online conferences. And we would try to emulate a real in-person conference, and it was super tiring and it was difficult to get feedback from the people because you don't see the audience. And then [I thought to myself] ‘Okay, if I'm going to do something online, I should probably do something that I cannot do in person.’ \n \n \n And I was having this idea for a long time to tell stories. It actually came after I read a book ‘The Phoenix Project’ that I thought was really good in terms of storytelling about CI/CD techniques. And I wanted to do something like that for Postgres. And then it came out, the idea with Monica DeBea.” – Boriss Mejías \n \n Boriss’s virtual talk at Citus Con: An Event for Postgres 2023 was amazing. It’s titled Postgres Storytelling: Support in the Darkest Hour, and featured gorgeous artwork created by Scarlett Riggs. \n \n The protagonist of Boriss’s story is a fictional DBA named “Monica DeBea” (get it, “DeBea”, which sort of sounds like DBA?) Boriss tells the story of Monica’s late-night struggle with the transaction ID wraparound problem with Postgres vacuum. And then Boriss shares how he conceived of this storytelling technique. \n \n Storytelling-as-learning is a change of pace for a Postgres conference and many of us think it’s quite fun. And more importantly, it works! When your brain is tired after watching talk after talk, it’s refreshing to listen to a story (while still learning.) \n \n \n “Giving talks [at Postgres conferences] gives us the opportunity to grow the Postgres community. \n \n \n And growing the Postgres user community means we also grow the Postgres development community. Both directly because some of those users eventually become developers—and also indirectly because those users, as they interact with the software, provide very useful feedback for what should we do next… and how to evolve the software in a way that serves everybody.” – Álvaro Herrera \n \n Both Álvaro and Boriss talk about how time-intensive it is to create conference talks—and yet even so, they still make the time to create talks and go to conferences to present them. Why? Listen to hear why they think engaging with the Postgres community at conferences is valuable. In particular, the opportunity to talk to real-world users of Postgres and get feedback from them is key. \n \n \n “I've learned that humor [in a conference talk] is like salt to food. I mean, it enhances the taste of your food. But you can't have a plate of just salt, right?” – Boriss Mejías \n \n Should you use humor in your presentations? Everyone on the show had an opinion. Boriss believes he can use a little bit of humor, but has to be quite sparing. Others (you can listen to find out who) felt they couldn’t use humor at all. \n \n I know that I try to be funny as part of my effort to keep my audiences awake and not looking at their phones. Competing with cell phones is a challenge. \n \n Inspiration for different types of conference talks \n Also on this episode, several different types of conference talks were discussed. Here are some of the different categories of talks we explored in episode 3 of Path To Citus Con—although obviously there are more, this list is not complete by any means. \n \n \n Storytelling talk, such as about problems a support engineer faces \n “How to use” talks about features, diving into all the parameters etc. \n “How to get started using” <insert Postgres capability/feature here> \n Explain the use cases for a feature \n Answering Questions that users or customers often ask \n Explore Pain points or trouble spots—and tips to avoid them \n How to become a Postgres hacker \n How to create Postgres patches \n “What I learned” as I was doing X for the first time (similar to “Today I Learned”) \n “LFMF” Learn From My Failure talks \n Customer stories & success stories \n \n I wrote a blog post about why to give conference talks (or why to give Postgres talks) last year and I forgot to mention it during the episode. Talk about a missed opportunity. The blog post includes even more ideas and inspiration for different types of talks—plus how the investment can benefit you and your team. \n \n Upcoming Postgres conferences \n It's the beginning of Postgres conference season. If the podcast inspires you to attend some of the PG events (or to submit talk proposals into the CFPs), here are some of the events coming up around the world. \n \n \n PGConf NYC 2023: Oct 3-5, 2023 \n PGDay Israel: Oct 19, 2023 \n FOSS4G NA: Oct 23-25, 2023 \n PASS Data Community Summit: Nov 14-17, 2023 \n PGConf.EU: Dec 12-15, 2023 \n PostgreSQL @ SCaLE21X: Mar 14-15, 2024… and the CFP is open until Nov 1, 2023 \n \n \n Where to find Path To Citus Con podcast episodes (and transcripts) \n You can listen to and find the show notes online for this Why give talks at Postgres conferences episode with Álvaro and Boriss—and the transcript is online too. \n \n Next podcast episode will be recorded live on Discord \n \n \n When = Wed Oct 11 @ 10am PDT | 1pm EDT | 5pm UTC \n Topic = How I got started as a developer (& in Postgres) with Andres Freund and Heikki Linnakangas \n Calendar invite: To participate in the live text chat that happens in parallel to the live recording (it’s fun), mark your calendar. All the instructions for joining the live show on Discord are in the calendar invite. \n \n You can find all the past episodes for Path To Citus Con on: \n \n Apple Podcasts \n Spotify \n YouTube \n And many more podcast platforms \n \n More useful links: \n \n Index of all past Path To Citus Con episodes \n Subscribe to the calendar to know when all the future shows are coming up here. \n \n Thanks for listening! Since Path To Citus Con is a fairly new podcast for developers who love Postgres, if you enjoy the episodes, please be sure to spread the word! We really appreciate ratings and reviews, so more people will discover the podcast, and hopefully be as delighted as you. \n Attribution: This blog post by Claire Giordano about Episode 3 highlights of the Path To Citus Con podcast (with guests Álvaro Herrera & Boriss Mejías) was originally published on the Citus Open Source Blog. \n \n [Update: July 2024] Path To Citus Con has been renamed to Talking Postgres. All of the 16 podcast episodes from Path To Citus Con—now called Talking Postgres with Claire Giordano—can be found at TalkingPostgres.com. Read more about the podcast rename to Talking Postgres. ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"10335","kudosSumWeight":1,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTMyMjY0LTUwOTMyM2lCQzEwNUE1MTI3OTBFMEZE?revision=10\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTMyMjY0LTUwOTMyNWkwQTNDMDNGMThEQzk2MjFB?revision=10\"}"}}],"totalCount":2,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:3978821":{"__typename":"Conversation","id":"conversation:3978821","topic":{"__typename":"BlogTopicMessage","uid":3978821},"lastPostingActivityTime":"2024-10-07T17:58:39.562-07:00","solved":false},"User:user:1812559":{"__typename":"User","uid":1812559,"login":"techieari","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0xODEyNTU5LTUyNDE1MGk2M0IyQjgxQjFDOUU5NzY0"},"id":"user:1812559"},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTc4ODIxLTUyNDExMWk3MEYyM0NDNzM4MDU2NkEy?revision=9\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTc4ODIxLTUyNDExMWk3MEYyM0NDNzM4MDU2NkEy?revision=9","title":"blog-graphic-with-path-to-citus-con-podcast-episode-09-solving-every-data-problem-in-sql.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTc4ODIxLTUyNDExMmk4QzM2MjI4NjMwRjA2OTYw?revision=9\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTc4ODIxLTUyNDExMmk4QzM2MjI4NjMwRjA2OTYw?revision=9","title":"PathToCitusCon-Ep09-Solving-Every-Data-Problem-in-SQL-with-Dimitri-Fontaine-Vik-Fearing-youtube-1920x1080.png.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"BlogTopicMessage:message:3978821":{"__typename":"BlogTopicMessage","subject":"Highlights of Path To Citus Con podcast ep09 with Postgres experts Dimitri Fontaine and Vik Fearing","conversation":{"__ref":"Conversation:conversation:3978821"},"id":"message:3978821","revisionNum":9,"uid":3978821,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:1812559"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n Fave bits from this podcast episode about SQL, Postgres, & whether you can (or should) solve every data problem in SQL. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":3513},"postTime":"2023-11-11T12:40:41.649-08:00","lastPublishTime":"2024-10-07T17:58:39.562-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" Did you know you can solve most of the puzzles in Advent of Code with SQL? In this episode of the Path To Citus Con podcast for developers who love Postgres, guests Dimitri Fontaine and Vik Fearing join co-hosts Claire Giordano and Pino de Candia to explore whether you can (or should) solve every data problem in SQL. \n \n Learning SQL requires practice, just like any other skill. Dimitri will tell you why being lazy might just be a good reason to learn SQL. And how it can make your life easier and more efficient. \n \n If you’re a fan of relational databases, you might have wondered how to pronounce the acronym SQL. Or maybe you’ve been mispronouncing it all along. So pronunciation is discussed too: Is SQL pronounced “ess-que-ell” or “sequel”? Vik, who is a member of the SQL Standard committee, has the answer to this question. \n \n In this post, you’ll get some episode highlights with favorite quotes. At the end of this post, you’ll find links to where you can subscribe and listen to past episodes of the podcast. \n \n Solving every data problem in SQL (or not) \n \n Dimitri Fontaine (author of The Art of PostgreSQL and engineer at Microsoft) and Vik Fearing (member of the SQL Standard Committee and PostgreSQL Expert at EDB)—along with hosts Claire Giordano and Pino de Candia—had a sweeping conversation about the SQL language. \n \n Topics included: writing The Art of PostgreSQL book, joining the SQL Standard Committee, programming puzzles in Advent of Code, favorite resources for learning SQL, the art and science of becoming expert at SQL—plus how to write a SQL query to resolve a time zone misunderstanding. Both Dimitri and Vik have been in the PostgreSQL world since the 2000s and they share a passion for the Postgres database and the language of SQL. \n \n The podcast also explores the differences between a declarative language like SQL and other functional and imperative programming languages. \n \n Let’s dive into some interesting bits from the episode... \n \n \n \n Highlights & quotes from the episode with Dimitri & Vik \n \n \n “You shouldn't solve every problem with SQL. SQL is a very good tool for what it does, but it's not the silver bullet. Some problems still need to be solved in other languages.” – Vik Fearing \n \n Vik made this point 3 times over the course of this podcast episode. His main takeaway is that SQL is a great tool for certain problems, but it’s not a one-size-fits-all solution. Both Vik & Dimitri stressed that SQL is incredibly powerful and worth learning but is not the answer to every data problem in the world. When you encounter complex challenges that require a different approach, don’t hesitate to explore other programming languages. \n \n \n “I got into SQL because of two things. The first one is I'm lazy. So if you open up any website that is trying to explain how to sort data, it's pretty complex pretty often, and you have a lot of different algorithms that are meant to be the best at the situation when you have this kind of data. […] I've always been a little fascinated by making complex things easy to use and simple to understand and so for me. SQL was that, it was filling a gap where some of the things are very complex.” – Dimitri Fontaine \n \n Think about why you learned SQL, and you might just relate to this. One of the reasons for Dimitri is pure laziness, but in a good way. When you are faced with websites filled with complex explanations on sorting data using various algorithms, it’s easy to feel overwhelmed. According to Dimitri, SQL can come to the rescue as a beacon of simplicity. \n \n \n “One example [of patterns often implemented in the application but which should be pushed down to the database] is finding equals. So for example, in the case of Olympic medals: If you usually get a gold, a silver and a bronze, but if the top two are exactly equal, then you get a gold, a gold, and a bronze. You don't get a silver. And programming that, I have noticed, is not the easiest thing to do. Whereas in SQL, it's just a rank. And rank will give you, exactly what you need.” – Vik Fearing \n \n Ever encountered the challenge of dealing with equals, like in the world of Olympic medals? It can get tricky, especially when you need to handle situations where top positions tie. In programming, this can be quite a puzzle, but Vik explains that SQL offers a simple solution with its “rank” function—so pushing down work from the application into the database makes a lot of sense in this case. \n \n \n “I think you need to get to the point where [using SQL] is an actual choice meaning that you know exactly how to do it in SQL and then you choose to do it in SQL or in something else. But until you have that skill level, that allows you to make it an explicit choice in your mind, like I could do it that way or this way and my preference today is this way. Well, then that's cool.” – Dimitri Fontaine \n \n Dimitri’s advice to grow your skillset in SQL is to practice it everyday for at least 15-30 minutes. Use datasets that are interesting to you so that the Postgres queries you practice with also reveal interesting results. Likewise, you can think of possible ways on how SQL can help you answer questions using data from your job. The main idea is that you start using SQL to get answers to questions you care about. \n \n Where to find Path To Citus Con podcast episodes (& transcripts) \n \n You can listen to and find the show notes online for this Solving every data problem in SQL episode with Dimitri and Vik—and the transcript is online too. \n \n Our next podcast episode will be recorded live on Discord: \n \n When = Wed Dec 6 @ 10am PST | 1pm EST | 6pm UTC \n Topic = My journey into Postgres Monitoring with Lukas Fittl and Rob Treat \n Calendar invite: To participate in the live text chat that happens in parallel to the live recording (it’s fun), mark your calendar. All the instructions for joining the live show on Discord are in the calendar invite. \n \n \n You can find all the past episodes for the Path To Citus Con podcast on: \n \n Apple Podcasts \n Spotify \n YouTube \n And many more podcast platforms \n \n \n More useful links: \n \n Index of all past Path To Citus Con episodes \n Subscribe to the calendar to know when all the future shows are coming up here. \n \n \n Thanks for listening! Since Path To Citus Con is a new(ish) podcast for developers who love Postgres, if you enjoy it, please tell your teammates. Also: we really appreciate ratings and reviews, so more people will discover the podcast. Let us know what you think! \n \n Attribution: This blog post by Ari Padilla about Episode 9 highlights of the Path To Citus Con podcast (with guests Dimitri Fontaine & Vik Fearing) was originally published on the Citus Open Source Blog. \n \n [Update: July 2024] Path To Citus Con has been renamed to Talking Postgres. All of the 16 podcast episodes from Path To Citus Con—now called Talking Postgres with Claire Giordano—can be found at TalkingPostgres.com. Read more about the podcast rename to Talking Postgres. ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"7184","kudosSumWeight":2,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTc4ODIxLTUyNDExMWk3MEYyM0NDNzM4MDU2NkEy?revision=9\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTc4ODIxLTUyNDExMmk4QzM2MjI4NjMwRjA2OTYw?revision=9\"}"}}],"totalCount":2,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:3998508":{"__typename":"Conversation","id":"conversation:3998508","topic":{"__typename":"BlogTopicMessage","uid":3998508},"lastPostingActivityTime":"2024-10-07T17:58:03.952-07:00","solved":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI2NGk3NzdCQjhGNjUyNTc0QTU4?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI2NGk3NzdCQjhGNjUyNTc0QTU4?revision=16","title":"My-illustrated-guide-to-Postgres-at-PASS-Data-Summit-blog-with-lots-of-photos-1200x675.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI3NWlDQjhBQzYxQTVFOEJFMkJD?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI3NWlDQjhBQzYxQTVFOEJFMkJD?revision=16","title":"Figure1-My-illustrated-guide-to-Postgres-at-PASS-Data-Summit-blog-with-lots-of-photos-1920x1080.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI3N2kxMTAyRkNGNTNCM0IwNjM4?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI3N2kxMTAyRkNGNTNCM0IwNjM4?revision=16","title":"Figure2-Screenshot-What-is-PASS-Data-Community-Summit-1300x844.png","associationType":"BODY","width":1300,"height":844,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwM2kxRDdDQzAzRTU0MzVCOEZF?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwM2kxRDdDQzAzRTU0MzVCOEZF?revision=16","title":"Figure4-screenshot-PavloGolub-tweet-arriving-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1398,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNGk0QjAxRjE3NTM5OEMxQTE3?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNGk0QjAxRjE3NTM5OEMxQTE3?revision=16","title":"Figure5-screenshot-clairegiordano-tweet-about-dry-run-Microsoft-keynote-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1444,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNWkzMzc4QURBOTNFQUJFNkI4?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNWkzMzc4QURBOTNFQUJFNkI4?revision=16","title":"Figure6-screenshot-clairegiordano-tweet-of-Microsoft-team-on-keynote-stage-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1542,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNmk0NzFFMjU0QjQ0MUJDRDQ2?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNmk0NzFFMjU0QjQ0MUJDRDQ2?revision=16","title":"Figure7-screenshot-AzureDBPostgres-tweet-of-Arda-Aytekin-giving-AI-talk-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1702,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwN2k5RjE1OTA5Mjc1QUE5MUMw?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwN2k5RjE1OTA5Mjc1QUE5MUMw?revision=16","title":"Figure8-screenshot-clairegiordano-tweet-about-Pavlo-Golub-pg_timetable-talk-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1656,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwOGkyMDc3NDAwMkY5RjEwMUVE?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwOGkyMDc3NDAwMkY5RjEwMUVE?revision=16","title":"Figure9-screenshot-clairegiordano-tweet-about-Jeremy-Schneider-Postgres-talk-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1800,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwOWlEQjg5MUI1ODQ2ODA5MERC?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwOWlEQjg5MUI1ODQ2ODA5MERC?revision=16","title":"Figure10-screenshot-clairegiordano-tweet-of-Ryan-Booz-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1750,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMGlERDVCNzJCOTBCMjdDMTdF?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMGlERDVCNzJCOTBCMjdDMTdF?revision=16","title":"Figure11-screenshot-jer_s-tweet-about-Postgres-panel-discussion-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1204,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMWlDMTJGNTAyQ0MzMkZBNEFC?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMWlDMTJGNTAyQ0MzMkZBNEFC?revision=16","title":"Figure12-screenshot-clairegiordano-tweet-PostgresFriends-community-dinner-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1494,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMmlDNzZCQUVBMDBDRTQyQzkw?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMmlDNzZCQUVBMDBDRTQyQzkw?revision=16","title":"Figure13-screenshot-clairegiordano-tweet-of-Rob-Treat-on-stage-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1656,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNGk3RUUyRkI4NTU1ODJCQTEz?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNGk3RUUyRkI4NTU1ODJCQTEz?revision=16","title":"Figure14-screenshot-clairegiordano-tweet-of-Chelsea-Dole-on-stage-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1204,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNWkwNTA5QjU3RUMyOEUxOEY0?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNWkwNTA5QjU3RUMyOEUxOEY0?revision=16","title":"Figure15-screenshot-ryanbooz-tweet-of-Claire-Giordano-giving-talk-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1252,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNmk0NjQzRkM0RDFBQTIxNjVB?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNmk0NjQzRkM0RDFBQTIxNjVB?revision=16","title":"Figure16-screenshot-AzureDBPostgres-tweet-of-Charles-Feddersen-on-stage-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1654,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxOGk4NzI5Q0M0MEI0QzdEMUUx?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxOGk4NzI5Q0M0MEI0QzdEMUUx?revision=16","title":"Figure17-screenshot-PavloGolub-tweet-of-PostgreSQL-booth-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1108,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxOWk4RkQ4QkE2NEJEQzE3NEE4?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxOWk4RkQ4QkE2NEJEQzE3NEE4?revision=16","title":"Figure18-screenshot-Grant-Fritchey-tweet-of-new-PostgreSQL-hat-at-PASSDataSummit-2023.png","associationType":"BODY","width":1104,"height":1510,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMyMGk3RTM5RDlGNTA4QTI4REMw?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMyMGk3RTM5RDlGNTA4QTI4REMw?revision=16","title":"Figure19-screenshot-clairegiordano-mastodon-post-its-a-wrap-farewell-to-PASSDataSummit-2023.png","associationType":"BODY","width":1168,"height":1754,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMyMWlCQTFDQUM5QUY0MjZBRkIw?revision=16\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMyMWlCQTFDQUM5QUY0MjZBRkIw?revision=16","title":"Figure20-screenshot-PGSQL-Phriday-014-Pavlo-Golub-PostgreSQL-Events-blog-post-1081x705.png","associationType":"BODY","width":1081,"height":705,"altText":null},"BlogTopicMessage:message:3998508":{"__typename":"BlogTopicMessage","subject":"My Illustrated Guide to Postgres at PASS Data Summit 2023","conversation":{"__ref":"Conversation:conversation:3998508"},"id":"message:3998508","revisionNum":16,"uid":3998508,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:415380"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n This illustrated guide to my first-timer Postgres experience at PASS Data Community Summit 2023 is a show and tell of what the PG experience was like at this year’s PASS conference in Seattle Washington. Part of PGSQL Phriday #014. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":3140},"postTime":"2023-12-01T12:06:18.927-08:00","lastPublishTime":"2024-10-07T17:58:03.952-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" The topic of this month’s PGSQL Phriday #014 community blogging event—where people from different companies and different countries all blog about the same topic on the same day—is PostgreSQL Events. Big thanks to Pavlo Golub for organizing this month's PGSQL Phriday. \n \n Deciding what event to blog about was a bit of a challenge—there are so many Postgres events worth shining a light on. Top of mind at this moment are PGConf EU which will happen in Prague in December—and the Path To Citus Con monthly podcast that I co-host for developers who love Postgres. \n \n So what Postgres event did I choose for this PGSQL Phriday post? \n I thought y’all might appreciate this “Illustrated Guide” to my Postgres experience at the PASS Data Community Summit 2023 which happened in Seattle, WA on November 14-17. Let’s dive in. \n \n \n \n What is PASS Data Community Summit? \n Historically the PASS Data Community Summit focused on the SQL Server community, bringing together several thousand database people in the SQL community. \n \n This year the organizers surprised the world by adding a focus on PostgreSQL as part of PASS. Which is how I ended up in chilly Seattle a few weeks ago. \n \n \n \n \n \n My PASS talk about contributing to the Postgres community \n Like many conference speakers, I danced a jig when this talk was accepted for PASS. My talk on How to get involved with Postgres without being a PG expert is all about the many ways you can contribute to the Postgres community—beyond code. \n \n And just like sailboat racing—in which every single person in the crew influences the final score—all these different types of contributions to Postgres are valuable. Slides on speakerdeck. \n \n \n Figure 3: Slides from my Postgres talk at PASS Data Summit are on Speakerdeck, titled: How to get involved with Postgres without being a PG expert? \n \n Pavlo Golub of Cybertec beat me to the Seattle Convention Center \n I was on my way to the airport in San Francisco when I saw this tweet from Pavlo Golub, with photographic evidence that he was already in the house at the Seattle Convention Center. Proof positive I would not be the only Postgres person. 😃 \n \n \n \n \n \n Dry run for the Microsoft keynote at PASS \n After my Microsoft teammates learned I was going to PASS, they invited me to give one of the keynote demos in Shireesh Thota’s Microsoft keynote. What a kick. If you’ve ever given a talk with over 1,000 people in the audience, you already know there is a spike in adrenalin when you walk up on stage and see So. Many. People. \n \n The day before the keynote, we did a complete, on-stage, in-person dry run at the Seattle Convention Center for the keynote. \n \n \n \n \n \n Then the keynote happened, with a demo of azure_ai for Azure Database for PostgreSQL \n Good thing Shireesh Thota’s Microsoft keynote about Data and Innovation in an AI world was on the morning of Day 1, that way I could knock it out of the park early and switch gears to focus on all the rest of the Postgres talks at PASS. \n \n Still, to be part of this team of experienced keynote speakers was great fun. Anna Hoffman, Bob Ward, and Conor Cunningham are much-loved in the SQL database world. I’m so glad I took my shot and said yes to giving this keynote demo. \n \n And the feedback on the azure_ai demo with pgvector and Azure Database for PostgreSQL - Flexible Server was out of this world. I’ll drop a link to the demo here as soon as it gets published on YouTube. In the meantime, here is a link to Denzil Ribeiro’s blog post introducing azure_ai. \n \n \n \n \n \n Christophe Pettus & Ryan Lambert gave the first dedicated Postgres talks \n Unfortunately I didn’t make it to either Christophe’s or Ryan’s talks (presented right after my keynote demo, so I was in recovery mode) but I want to mention their talks here because the topics are so relevant. There's much to be excited about in Postgres 16 (including pg_stat_io )—and Ryan Lambert spoke about one of my favorite topics: Postgres extensions. \n \n What’s New in Postgres 16 by Christophe Pettus of PGX \n PostgreSQL: Extensions Shape the Future by Ryan Lambert of Rust Proof Labs slides available here \n \n \n Arda Aytekin’s talk about Advanced AI scenarios with Azure Database for PostgreSQL \n What a pleasure to see this deeper dive talk about the azure_ai demo I gave in the Microsoft keynote. Arda is a brilliant AI specialist and while we had already worked together remotely, it was quite a happy moment to finally meet Arda in person. Here is the @AzureDBPostgres tweet about Arda’s talk on azure_ai . \n \n \n \n \n \n Pavlo Golub’s talk about Professional PostgreSQL Scheduling Made Easy \n Pavlo’s talk walks you through everything you might want to know about an open source scheduling tool he created called pg_timetable . It was a challenge getting a good photo of Pavlo because he gesticulates so much, his hands are constantly in motion! But I finally managed to capture this shot of Pavlo on stage. \n \n \n \n \n \n Jeremy Schneider gave 2 Postgres talks at PASS this year \n Jeremy Schneider is one of the Seattle PostgreSQL Users Group organizers. And at PASS Data Summit this year, Jeremy prolifically presented 2 different talks. \n \n His 1st talk was on Wait! What’s going on Inside my Database! and Jeremy’s 2nd talk was on String Comparison Surprises: Did Postgres lose my data? \n \n \n \n \n \n Ryan Booz of Redgate wore lots of hats at PASS, but the best one was “Postgres speaker” \n When I swung by Ryan’s talk about PostgreSQL: From install to first query, the room was full. But none of the Ryan-on-stage pictures turned out. So I snapped this pic of Ryan later that day, right before Ryan facilitated a panel discussion. About Postgres of course! \n \n \n \n \n \n Panel discussion on Preparing PostgreSQL for the Next Wave of Users \n Ryan Booz facilitated a panel discussion with Ryan Lambert, Pavlo Golub, myself, Rob Treat, and Christophe Pettus where we covered all sorts of Postgres territory. It was fun! \n \n +1 to Jeremy Schneider who tweeted these pics of the Postgres panel from the audience—and asked some good questions too. \n \n \n \n \n \n Hallway track led to an informal Postgres Friends community dinner \n Not everyone could make it to this serendipitous, last-minute dinner—and I didn’t even manage to reach and invite all of the Postgres speakers at the PASS Data Community Summit—but hey, we got a quorum! \n \n In the photo I shared below, clockwise starting from me (I’m in the red shirt) are Claire Giordano, Chelsea Dole of Brex, Pavlo Golub of Cybertec, Tatiana Krupenya the CEO of dBeaver, Rob Treat (with the blue Postgres hat), Grant McAlister and Jeremy Scheider both of AWS, and Grant Fritchey and Ryan Booz both of Redgate. \n \n \n \n \n \n Rob Treat’s talk titled “Think Like a Postgres” \n Rob Treat is a good explainer and people must have figured that out because Rob’s Think Like a Postgres talk was packed. If you get the chance to see Rob Treat give a talk, you’ll love the way Rob explains complicated Postgres things in a way that somehow makes it seem quite understandable. \n \n \n And in other news—Rob Treat, along with Lukas Fittl of pganalyze, is going to be a guest on the Path To Citus Con podcast which will be recorded live on Wed Dec 6th 2023. The topic will be My Journey into Postgres Monitoring. And while you can listen to the podcast episode anytime, like when you’re washing the dishes or walking the dog... it can be fun to participate in the live text chat on Discord, that takes place in parallel to the podcast recording. So here is your own personal calendar invite to Path To Citus Con Ep10. \n \n \n \n \n \n \n Chelsea Dole’s talk about Postgres at Scale: Vacuum, MVCC & Table Bloat \n I did not get to attend Chelsea’s talk because our talks were at the same time, so unfortunately the audience had to pick between Chelsea’s topic and mine. Good thing Pavlo managed to live tweet about Chelsea’s talk at PASS since I couldn’t be there. \n \n Chelsea is a really good presenter. Which is why many of us are glad she’s been sharing her learnings on the Postgres conference circuit this year. In fact, Chelsea gave a talk at Citus Con: An Event for Postgres back in April, titled Understanding & Managing Postgres Table Bloat. If you care about Postgres bloat (who doesn’t?), you’ll like this talk. \n \n \n \n \n \n My talk about How to get involved with Postgres without being a PG expert \n There are lots of ways to contribute to the Postgres community beyond code—and hopefully those who attended walked away with actionable ideas about how they can get involved. \n \n Pictures of me on stage courtesy of Ryan Booz on Twitter. (And Pavlo Golub on Mastodon, too.) \n \n \n \n \n \n Charles Feddersen’s talk on what’s new in Azure Database for PostgreSQL \n I attended the talk my Australian boss Charles Feddersen gave on Friday about all things new in Azure Database for PostgreSQL – Flexible Server. And I managed to live tweet this during Charles’s talk. \n \n Charles’s talk covered all the new features, including these fan favorites: \n \n Postgres 16 GA support \n Premium SSD v2 \n New azure_ai extension \n \n \n \n \n \n \n A few more Postgres talks I wished I had the chance to see \n There were over 20 Postgres talks at PASS, likely more. I wish I had seen these 4 talks in particular... am looking forward to the videos. \n \n Practical Memory Tuning for Postgres by Grant McAlister \n Reasons why Developers Choose Azure Database for PostgreSQL by Denzil Ribeiro \n Speaking and Community Involvement for the Introvert by Pat Wright, who I first met at PGConf NYC 2022, where he was one of the organizers. +1 to Pavlo for tweeting about Pat’s talk at PASS \n Exploring Azure Cosmos DB for PostgreSQL by Jean Joseph \n \n \n The PostgreSQL Booth at the PASS Data Summit \n I did not spend much time on the expo floor, I was mostly in the hallway track or in the Postgres sessions themselves. Look at how much buzz there was around the Postgres booth! \n \n \n \n \n \n Grant Fritchey of Redgate sporting a new & blue Postgres hat \n I met Grant Fritchey of Redgate earlier this year when he was a guest on the “Path To Citus Con” podcast—along with Ryan Booz—for an episode about My favorite ways to learn more about Postgres. \n \n Grant has 30+ years of died-in-the-wool SQL database expertise, and recently he’s been engaging more and more in Postgres. This Postgres hat seems to fit Grant quite well. \n \n \n \n \n \n It’s a wrap! Many thanks to PASS organizers for including Postgres this year \n So happy to see old Postgres friends and meet some new Postgres friends at PASS Data Summit too. It’s a ton of work to organize a conference, so much respect to the team at Redgate for making it look so easy. And for including Postgres in the mix this year. \n \n Here is my official “it’s a wrap” post that includes a link to the slides from my talk about How to get involved with Postgres without being a PG expert. \n \n \n \n \n \n Props to Pavlo Golub for making PGSQL Phriday #014 happen \n Thanks Pavlo for organizing the December 2023 PGSQL Phriday and to Ryan Booz for organizing PGSQL Phridays to begin with! \n \n \n \n Honorable mentions, other favorite Postgres events \n These 2 PostgreSQL events deserve an honorable mention and almost were the focal point for this PGSQL Phriday blog post. \n \n \n PGConf EU 2023: In just over a week, over 500 Postgres people will descend on Prague for PGConf.EU 2023, the largest Postgres conference in Europe and a crowd favorite amongst all the Postgres conferences on this planet. Tickets are still available as of right now, but it usually sells out so don’t wait too long to decide. I’m giving a talk at PGConf.EU too, a Beginner’s Guide to Partitioning vs. Sharding in Postgres which was inspired by a previous PGSQL Phriday back in August. \n \n \n Path To Citus Con Podcast: This is a new podcast for developers who love Postgres, called Path To Citus Con. (Full disclosure: I'm a co-host.) One of the past podcast episodes was about Why giving talks at Postgres conferences matters, with Álvaro Herrera and Boriss Mejías. Seems like a perfect fit, right? \n \n \n \n \n Attribution: This PGSQL Phriday blog post by Claire Giordano about \"My Illustrated Guide to Postgres at PASS Data Summit 2023\" was originally published on the Citus Open Source Blog. \n \n [Update: July 2024] Path To Citus Con has been renamed to Talking Postgres. All of the 16 podcast episodes from Path To Citus Con—now called Talking Postgres with Claire Giordano—can be found at TalkingPostgres.com. Read more about the podcast rename to Talking Postgres. ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"13069","kudosSumWeight":2,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI2NGk3NzdCQjhGNjUyNTc0QTU4?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI3NWlDQjhBQzYxQTVFOEJFMkJD?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTI3N2kxMTAyRkNGNTNCM0IwNjM4?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDQ","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwM2kxRDdDQzAzRTU0MzVCOEZF?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDU","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNGk0QjAxRjE3NTM5OEMxQTE3?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDY","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNWkzMzc4QURBOTNFQUJFNkI4?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDc","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwNmk0NzFFMjU0QjQ0MUJDRDQ2?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDg","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwN2k5RjE1OTA5Mjc1QUE5MUMw?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDk","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwOGkyMDc3NDAwMkY5RjEwMUVE?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDEw","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMwOWlEQjg5MUI1ODQ2ODA5MERC?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDEx","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMGlERDVCNzJCOTBCMjdDMTdF?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDEy","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMWlDMTJGNTAyQ0MzMkZBNEFC?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDEz","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxMmlDNzZCQUVBMDBDRTQyQzkw?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE0","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNGk3RUUyRkI4NTU1ODJCQTEz?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE1","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNWkwNTA5QjU3RUMyOEUxOEY0?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE2","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxNmk0NjQzRkM0RDFBQTIxNjVB?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE3","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxOGk4NzI5Q0M0MEI0QzdEMUUx?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE4","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMxOWk4RkQ4QkE2NEJEQzE3NEE4?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE5","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMyMGk3RTM5RDlGNTA4QTI4REMw?revision=16\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDIw","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTk4NTA4LTUzMTMyMWlCQTFDQUM5QUY0MjZBRkIw?revision=16\"}"}}],"totalCount":20,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:4094496":{"__typename":"Conversation","id":"conversation:4094496","topic":{"__typename":"BlogTopicMessage","uid":4094496},"lastPostingActivityTime":"2024-10-07T17:53:04.362-07:00","solved":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI1MGk1MDIwOTI0NzAzODAxMkRB?revision=18\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI1MGk1MDIwOTI0NzAzODAxMkRB?revision=18","title":"Big-Grey-Elephant-with-sign-stating-CFPisOpen-for-POSETTE-An-Event-for-Postgres-2024-1200x675.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3NGlBN0QyQTcyMjEyMjMyOEIx?revision=18\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3NGlBN0QyQTcyMjEyMjMyOEIx?revision=18","title":"screenshot-posetteconf-x-twitter-CFP-is-open-new-speakers-welcome-embed.png","associationType":"BODY","width":1106,"height":1446,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3N2lDMjY0NUI1Nzk4MTVCMUIz?revision=18\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3N2lDMjY0NUI1Nzk4MTVCMUIz?revision=18","title":"screenshot-posetteconf-mastodon-post-Hello-Posette-naming-backstory-embed-v2.png","associationType":"BODY","width":1047,"height":1524,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3OGk4OEY3QkQ2MjFEOTU2OERF?revision=18\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3OGk4OEY3QkQ2MjFEOTU2OERF?revision=18","title":"screenshot-posetteconf-threads-CFP-is-open-talk-selection-team-members-embed.png","associationType":"BODY","width":1108,"height":1100,"altText":null},"BlogTopicMessage:message:4094496":{"__typename":"BlogTopicMessage","subject":"Calling Postgres speakers, POSETTE CFP is open until Apr 7th 2024","conversation":{"__ref":"Conversation:conversation:4094496"},"id":"message:4094496","revisionNum":18,"uid":4094496,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:415380"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n Call for Proposals (CFP) is open til Sun Apr 7 at 11:59pm PDT for POSETTE: An Event for Postgres, a free & virtual event. What’s your Postgres story? We’d love to see your talk proposal, whether you’re a first-time speaker, a regular on the Postgres conference circuit, or somewhere in between. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":3401},"postTime":"2024-03-22T13:07:11.886-07:00","lastPublishTime":"2024-10-07T17:53:04.362-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" The tl;dr of this post is that the CFP is open until April 7th 2024 for POSETTE: An Event for Postgres, the free & virtual developer event brought to you with 🧡 by our Postgres team at Microsoft. Formerly called Citus Con. \n \n If you have a Postgres experience, learning, epiphany, story, failure, best practice, “how-to”, collection of tips, lesson about what’s new, or success story to share—not just about the core of Postgres, but about anything in the rich Postgres ecosystem, including extensions—please consider submitting a talk proposal into the CFP for POSETTE. \n \n Whether you are new to public speaking or a regular on the Postgres conference circuit, we’d love to hear your stories about Postgres. \n \n Before the CFP deadline of Sunday April 7th at 11:59pm PDT, of course. \n \n Speaking at virtual events like POSETTE has its benefits \n \n There is so much to love 🧡 about the face-to-face experiences at in-person Postgres conferences, but virtual events have their perks too—and are accessible to so many more people, people who cannot travel to conferences for whatever <insert reasons here>. \n \n As a speaker, a virtual POSETTE talk can reach many more people online on YouTube vs. an in-person talk which is often limited to the people in the room. \n \n If you’re wondering whether to submit, there’s a blog post about why to give a conference talk, and a podcast episode too. \n \n You can also take a peek at last year’s playlist of 37 Citus Con 2023 talks, as well as the playlist of Citus Con 2022 talks online. \n \n If you plan to submit, please don’t copy my mistake and cut the CFP deadline too close. Earlier this year, I missed a CFP close deadline by just 2 small hours! The result: I missed out on all the FOSDEM PGDay learnings. \n \n Key things to know about the CFP for POSETTE: An Event for Postgres 2024 \n \n \n \n CFP deadline: The POSETTE CFP will close on Sunday, Apr 7th 2024 @ 11:59pm Pacific Time (PDT) \n \n \n No travel required: free & virtual developer event \n \n \n Length of talks: 25 minutes/session \n \n \n Language: All talks will be in English \n \n \n Talks will be pre-recorded: All talks will be pre-recorded by the POSETTE team during the weeks of May 13th and May 20th (with you presenting remotely) \n \n \n When is the event?: Jun 11-13, 2024 \n \n \n Format of the Virtual Event: All pre-recorded talks will be livestreamed in one of 4 unique livestreams on Jun 11-13—all with parallel live text chats. Two of the livestreams will be in Americas-friendly times of day (8am-12:30pm PDT) and two of the livestreams will be in EMEA-friendly times of day (8am-12:30pm CEST) \n \n \n What types of talk topics?: Here is a list of example talk topics the Talk Selection Team is hoping people will submit into the call for proposals… about Postgres and its extensions and tools such as PostGIS, Citus, Patroni, PgBouncer, and more—plus Azure Database for PostgreSQL, of course. \n \n \n More CFP information: All the details, including key dates and how to submit on Sessionize, are spelled out on the CFP page for POSETTE. \n \n \n Tips and speaker resources: Be sure to check out the super-useful speaker resources that will help you create a strong and compelling Postgres talk proposal. \n \n \n Limit of 4 talk proposals per speaker: We love it when people submit more than one proposal or topic… just know the limit is 4 proposals! \n \n \n Code-of-conduct: You can find the POSETTE code of conduct online. Please help us to provide a respectful, friendly, and professional experience for everybody involved in this virtual conference. \n \n \n \n Stay connected with @PosetteConf on X/Twitter, Mastodon, or Threads \n \n If you want to be notified as things happen with POSETTE—such as when the Schedule drops—you can sign up for POSETTE news. \n \n Another way to stay informed, follow POSETTE on social media. The event hashtag is #PosetteConf. \n \n \n X/Twitter: @PosetteConf \n Mastodon: @posetteconf@mastodon.social \n Threads: @posetteconf \n \n \n Seen on Twitter \n \n New speakers, experienced speakers, & everyone in between are welcome (and encouraged) to submit to the CFP for POSETTE. \n \n If you want advice or feedback before you submit, just pop onto the #posetteconf channel on the Microsoft Open Source Discord and ask your questions. It’s totally OK to ask for help. \n \n \n \n Figure 1: If you use X/Twitter, you can follow @PosetteConf on X to stay connected to the event. +1 to Ari Padilla (@TechieAri online) for managing all of the Twitter, Mastodon, and Threads accounts for @PosetteConf this year. And Eren Basak for sharing the POSETTE info on LinkedIn. \n \n \n Seen on Mastodon: this backstory about the name POSETTE \n \n What does POSETTE stand for? Why did we change the name from Citus Con to POSETTE? This blog post titled, What’s in a name? Hello POSETTE: An Event for Postgres 2024 sheds some light on the backstory behind the name change and why we picked POSETTE. \n \n The TL;dr is that POSETTE is pronounced /Pō-zet/, like the character “Cosette” in Les Miserables. And while it’s not an acronym per se, the letters in POSETTE were inspired by: Postgres Open Source Ecosystem Talks Training & Education. \n \n And yes, you can follow @posetteconf on Mastodon. 🙂 \n \n \n \n Figure 2: If you use Mastodon, and want to stay connected to POSETTE, you can follow @posetteconf@mastodon.social on Mastodon. \n \n \n Seen on Threads: Who is the Talk Selection Team for POSETTE? \n \n Like all PostgreSQL community events, our POSETTE team, led by the conference chair Teresa Giacomini, is open and transparent about who will be reviewing your talk proposals. The talk selection team includes these 4 people (yes, myself included.) \n \n I am grateful to Alicja Kucharczyk, Daniel Gustafsson, and Melanie Plageman for volunteering their time to review the talk proposals—and I feel even luckier that so many of you are submitting such a-ma-zing talk proposals for POSETTE. Gratitude. \n \n \n \n Figure 3: You can also follow @posetteconf on Threads, which doesn’t have a ton of Postgres activity yet, but I hope to see that change as more and more developers and Postgres users pile onto this platform. \n \n \n What will your Postgres talk be about? \n \n This post by the amazing Julia Evans (@b0rk online) was written 10 years ago and has stood the test of time. If you’re looking for a nudge of inspiration, this might just be what you need: \n \n \n You should give talks. They will be awesome. Here’s why! by Julia Evans \n \n \n You may need to submit multiple proposals to multiple events before you get accepted—even the best speakers get rejected more than you realize. Still, the value of sharing your stories on stage is worth it. Even when you have to fight the butterflies. \n \n We're hoping you submit to the CFP for POSETTE. Regardless, please tell your PostgreSQL friends about the opportunity—so they don’t miss the deadline like I did for FOSDEM! \n \n [Update: July 2024] Path To Citus Con has been renamed to Talking Postgres. All of the 16 podcast episodes from Path To Citus Con—now called Talking Postgres with Claire Giordano—can be found at TalkingPostgres.com. Read more about the podcast rename to Talking Postgres. ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"7440","kudosSumWeight":1,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI1MGk1MDIwOTI0NzAzODAxMkRB?revision=18\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3NGlBN0QyQTcyMjEyMjMyOEIx?revision=18\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3N2lDMjY0NUI1Nzk4MTVCMUIz?revision=18\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDQ","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MDk0NDk2LTU2NDI3OGk4OEY3QkQ2MjFEOTU2OERF?revision=18\"}"}}],"totalCount":4,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:4186111":{"__typename":"Conversation","id":"conversation:4186111","topic":{"__typename":"BlogTopicMessage","uid":4186111},"lastPostingActivityTime":"2024-07-09T11:04:30.608-07:00","solved":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ0N2lDREZBMEM0NTgzMDc4RDY4?revision=24\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ0N2lDREZBMEM0NTgzMDc4RDY4?revision=24","title":"thought-bubbles-saying-hello-my-name-is-about-Talking-Postgres-podcast-rename-1200x675.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ3NGk3QjNBMDhGRjlFM0E0MTdE?revision=24\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ3NGk3QjNBMDhGRjlFM0E0MTdE?revision=24","title":"Talking-Postgres-podcast-1920x1080.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ2N2kzM0MwRThBOEM5QzNCNEUz?revision=24\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ2N2kzM0MwRThBOEM5QzNCNEUz?revision=24","title":"screenshot-talkingpostgres-podcast-intro-as-of-08Jul2024-1000x705.png","associationType":"BODY","width":1000,"height":705,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ3N2lFRUExMjQxMTdGQkIxM0FF?revision=24\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ3N2lFRUExMjQxMTdGQkIxM0FF?revision=24","title":"screenshot-talkingpostgres-podcast-three-most-recent-episodes-as-of-08Jul2024-1000x788.png","associationType":"BODY","width":1000,"height":788,"altText":null},"BlogTopicMessage:message:4186111":{"__typename":"BlogTopicMessage","subject":"Say hello to the Talking Postgres podcast","conversation":{"__ref":"Conversation:conversation:4186111"},"id":"message:4186111","revisionNum":24,"uid":4186111,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:415380"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" Why did we rename the monthly Path To Citus Con podcast to Talking Postgres? And what else has changed? Brought to you by the Postgres team at Microsoft. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":6073},"postTime":"2024-07-09T10:20:14.698-07:00","lastPublishTime":"2024-07-09T11:04:30.608-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" The TL;DR of this blog post is simple: the “Path To Citus Con” podcast for developers who love Postgres has been renamed—and the new name is Talking Postgres. \n \n And if you’re just hearing about the Talking Postgres podcast for the first time, it is a monthly podcast for developers who love Postgres, with amazing guests from the Postgres world who talk about the human side of Postgres, databases, and open source. \n \n \n Listening to the Talking Postgres podcast is the next best thing to being in the hallway at a Postgres conference, eavesdropping on other people’s conversations and learning from the experiences of experts. As Floor Drees says, it’s as if you’re sharing a coffee with them. \n \n Past podcast guests include (in order of appearance) some amazing Postgres, database, and open people such as: Simon Willison, Marco Slot, Abdullah Ustuner, Burak Yucesoy, Melanie Plageman, Samay Sharma, Álvaro Herrera, Boriss Mejías, Thomas Munro, Grant Fritchey, Ryan Booz, Chelsea Dole, Floor Drees, Paul Ramsey, Regina Obe, Andres Freund, Heikki Linnakangas, Dimitri Fontaine, Vik Fearing, Lukas Fittl, Rob Treat, Jelte Fennema-Nio, Derk van Veen, Arda Aytekin, Chris Ellis, Michael Christofides, Aaron Wislang, and Teresa Giacomini. The podcast is produced by the Postgres team at Microsoft—and I have the privilege of being your host. \n \n So whether you’re an existing listener or new to this podcast, we hope you enjoy the Talking Postgres podcast—and help to spread the word about the new name. \n \n \n \n Some key things to know about the Talking Postgres podcast \n \n \n \n Why did we rename the podcast?: Guests & friends repeatedly—and I mean repeatedly—nudged us to rename the podcast to a name that makes it more clear what the podcast is about. And at the end of the day it’s about Postgres things! So while the podcast was born in March 2023 as a pre-event to last year’s Citus Con—hence the original name, “Path To Citus Con”—Talking Postgres has grown into its own monthly podcast that has everything to do with Postgres and little to do with Citus Con (now called POSETTE.) \n \n \n \n \n \n Where can you catch up on past podcast episodes?: All 16 of the past episodes of Path To Citus Con can now be found on the talkingpostgres.com site—as well as on the Talking Postgres playlist on YouTube, and wherever you get your podcasts. \n \n \n \n \n \n If you’re already subscribed to the podcast, are you still subscribed?: We renamed the previous podcast, so if you were already subscribed, you should still be subscribed. Same thing for the RSS feed, it should just work! If you have any problems, please let us know via the #talkingpostgres channel in the Microsoft Open Source Discord. \n \n \n \n \n \n Can you still attend the LIVE recording of the podcast on Discord each month?: Yes! Inspired by the Oxide and Friends podcast that is hosted by Bryan Cantrill and Adam Leventhal—two of my former teammates from the kernel group at Sun Microsystems—we also record Talking Postgres (formerly Path To Citus Con) each month on Discord—with a parallel live text chat that is quite fun to be part of. \n \n \n \n \n \n When are the future LIVE podcast recordings: If you’ve never participated in this type of live podcast recording, you might want to give it a try. It’s easy to subscribe to the Talking Postgres calendar of future LIVE podcast recordings: we usually record on Wed mornings Pacific Time (PT) on the 1st or 2nd Wednesday of the month. \n \n \n \n \n \n Episode 17 of Talking Postgres will be recorded LIVE this Wed July 10, 2024: This July, our guest is Pino de Candia—the former co-host of the podcast—and the topic will be a bit “meta” this time! We’ll explore “Podcasting about Postgres” and we’ll look back at some of our greatest hits, talk about some of the other wonderful Postgres podcasts we listen to, and of course we’ll spend a few minutes reflecting on the podcast rename (why why why!) This Ep17 calendar invite should give you all the instructions you need to join us live on Discord this Wed Jul 10th at 10:00am PDT. \n \n \n \n \n \n And David Rowley is scheduled to be the guest on the August episode: Since David Rowley—a Postgres committer—is based in New Zealand, Ep18 in August with David Rowley will be recorded at an unusual time for us, on a Tuesday, specifically at 4:00pm PDT on Tue Aug 6th. The topic will be “How I got started as a developer & in Postgres” and we hope you can join us on the parallel live text chat! David is brilliant—and I’m definitely going to have to do my homework on Postgres performance topics to prep for the conversation, since that is one of David’s specialties. \n \n \n \n Let us know what you think of the podcast & please use hashtag #TalkingPostgres \n \n The new hashtag for the new podcast name is #TalkingPostgres. And as soon as we see some interesting tweets, toots, and threads about the podcast using the new name, perhaps we’ll add some of them to the talkingpostgres.com website. \n \n For now, here is a screenshot highlighting guests and topics for some of the most recent podcast episodes. You can of course subscribe to Talking Postgres and listen from anywhere, wherever you get your podcasts from. Enjoy! \n \n \n ent 3 episodes. \n ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"5421","kudosSumWeight":1,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ0N2lDREZBMEM0NTgzMDc4RDY4?revision=24\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ3NGk3QjNBMDhGRjlFM0E0MTdE?revision=24\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ2N2kzM0MwRThBOEM5QzNCNEUz?revision=24\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDQ","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTg2MTExLTU5ODQ3N2lFRUExMjQxMTdGQkIxM0FF?revision=24\"}"}}],"totalCount":4,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:4160130":{"__typename":"Conversation","id":"conversation:4160130","topic":{"__typename":"BlogTopicMessage","uid":4160130},"lastPostingActivityTime":"2024-06-04T23:11:52.204-07:00","solved":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA0MGk1MThBNUU2M0VEQjNFQjY2?revision=12\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA0MGk1MThBNUU2M0VEQjNFQjY2?revision=12","title":"big-block-letters-ultimate-guide-with-colorful-threads-of-knowledge-shaped-in-a-floral-bouquet-for-posette2024-blog-1200x675.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1MWlCNTQ3NUQzMzEzRjE2OTZD?revision=12\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1MWlCNTQ3NUQzMzEzRjE2OTZD?revision=12","title":"figure1-Screenshot-POSETTE-2024-Schedule-4-Livestreams-withBorder.png","associationType":"BODY","width":1365,"height":687,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1MmkyQjNFQzlFMTQ2QjNGMjhD?revision=12\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1MmkyQjNFQzlFMTQ2QjNGMjhD?revision=12","title":"figure2-gratitude-to-POSETTE-2024-speakers-withBorder.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1Nmk4NjBEMTgxRTZGOEQwOTg2?revision=12\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1Nmk4NjBEMTgxRTZGOEQwOTg2?revision=12","title":"figure3-virtual-hallway-track-for-posette-2024.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1M2lEM0QyNjg5NTZFODY3NERG?revision=12\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1M2lEM0QyNjg5NTZFODY3NERG?revision=12","title":"figure4-ultimate-guide-to-POSETTE-2024-stats-categories-withBorder.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"BlogTopicMessage:message:4160130":{"__typename":"BlogTopicMessage","subject":"Ultimate Guide to POSETTE: An Event for Postgres, 2024 edition","conversation":{"__ref":"Conversation:conversation:4160130"},"id":"message:4160130","revisionNum":12,"uid":4160130,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:415380"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n This guide will help you navigate all 42 talks at the 3rd annual POSETTE: An Event for Postgres 2024, happening Jun 11-13. POSETTE is a free & virtual developer event organized by the Postgres team at Microsoft that is chock-full of Postgres database content. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":9518},"postTime":"2024-06-04T23:11:52.204-07:00","lastPublishTime":"2024-06-04T23:11:52.204-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" Now in its 3rd year, POSETTE: An Event for Postgres 2024 is not only bigger than previous years but some of my Postgres friends who are speakers tell me the event is even better than past years. Sweet. \n Formerly called Citus Con (yes, we did a rename), POSETTE is a free and virtual developer event happening Jun 11-13 that is chock-full of Postgres content—with 4 livestreams, 42 talks, and 44 speakers. \n And while POSETTE is organized by the Postgres team here at Microsoft, there is a lot of PG community involvement. For example, 31 of the 44 speakers (~70%) are from outside Microsoft! We have also tried to be quite transparent about the talk selection process used for POSETTE 2024, if you’re curious. \n On the schedule, the add to calendar links (in upper right of each livestream's tab) are quite useful for blocking your calendar—and the calendar appointments include a link to where you can watch the livestreams on the POSETTE site. \n So what exactly is on the schedule for POSETTE: An Event for Postgres 2024? A lot! When you look at the schedule page, be sure to check out all 4 tabs, so you don’t miss all the unique talks in Livestreams 2, 3, and 4. \n There’s something “accessible” about virtual events \n \n As much as many of us 🧡 in-person Postgres events—I just returned from PGConf.dev 2024 in Vancouver which was so much fun 1 —I am also a big fan of the accessibility of the virtual format. \n \n \n Why? Because not everybody can travel to in-person conferences: Not everyone has the budget (or the time, or the schedule flexibility). So it’s rewarding to collaborate with all these knowledgeable speakers to produce video talks you can watch from the comfort of your very own desk. With espresso (or tea) in hand. \n \n \n Speaking of accessibility, let's talk captions. All the talk videos published on YouTube will have captions available in 14 languages. The POSETTE team QA’s and fixes the English captions first and then generates the translated captions based on the improved baseline version. \n \n \n Captions available in 14 languages: Chinese Simplified, Chinese Traditional, Czech, English, French, German, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, and Turkish \n \n \n So much gratitude for all these POSETTE speakers \n \n The raison d’être for most conferences is to learn from each other—and in particular, to learn from the speakers. So before diving into this Ultimate Guide we want to say thank you to all of the amazing the speakers who have brought so much knowledge and enthusiasm to POSETTE this year. \n \n \n \n TIP about Speaker Interviews: Some of the speakers submitted speaker interviews. So if you want to know more about these Postgres experts, just click on the links to their talks below and you’ll be taken to their speaker page, which includes the talk abstract, a link to the livestream schedule, links to any past POSETTE talks—plus the speaker interview, if they submitted one! \n \n Gratitude for our Livestream hosts too \n \n There is a fun lineup of Postgres people from inside and outside Microsoft to co-host the 4 livestreams, including Boriss Mejías, Claire Giordano (that’s me) Floor Drees, Jelte Fennema-Nio, Krishnakumar (KK) Ravi, Melanie Plageman, and Pino de Candia. \n \n Big +1 to all these folks for volunteering their time and their commentary to hosting the livestreams. \n \n How to watch the POSETTE livestreams? \n \n Each of the 4 livestreams has its own Add to calendar link which should be easy to find on that Livestream’s tab on the POSETTE Schedule. \n \n And when you use the Add to calendar links to block your calendar, the calendar invites include instructions on: \n \n \n WHERE to watch the livestreams: POSETTE event homepage\n \n TIP: be sure to reload the POSETTE homepage on the day of the event, so you’re not viewing some cached older version of the page or a replay of a previous livestream. \n \n \n WHERE to check out the schedule = POSETTE schedule page \n \n \n How to participate in the official back-channel for POSETTE? \n \n \n WHERE to join the virtual hallway track = #posetteconf channel on the Microsoft Open Source Discord. \n \n You can join the channel now, no need to wait, that way you’ll be all setup before the conference. \n \n \n What’s the benefit to you of joining the virtual hallway track, also known as the “official back-channel”? Most of the speakers have signed up to be available on the virtual hallway track whilst their talks are being livestreamed. So it’s your opportunity to ask speakers questions—and to be part of the conversation, and make some Postgres friends. \n \n \n st their talk is being livestreamed so it's a good chance to ask questions and go deeper. \n \n Will the recordings be available after the event? \n \n Yes! All the POSETTE talks will be published online on YouTube after the event is over, so you can watch all 42 talks at your convenience, on your own schedule—even at 2X speed. With captions available in at least 14 languages. \n \n Still, we hope you join us during the actual livestreams to be part of the live text chat. \n \n Now let’s explore the different categories of talks you’ll see at POSETTE: An Event for Postgres 2024. \n \n \n \n 4 amazing Keynotes, one for each livestream \n \n Each of the 4 POSETTE livestreams has its own invited keynote. The keynote speakers were hand-selected and invited to come tell their story at POSETTE. We're so happy they said yes—and that they will be sharing their open source, developer, cloud, and community experiences with us. \n \n \n Livestream 1 Keynote by Charles Feddersen: All The Postgres Things at Microsoft, POSETTE edition \n Livestream 2 Keynote by Regina Obe: The Open Source Geospatial Community, PostGIS, & Postgres \n Livestream 3 Keynote by Sarah Novotny: Why I love open source development & what I learned from K8s \n Livestream 4 Keynote by Thomas Munro: A Walking Tour of PostgreSQL \n \n \n 7 AI-related talks \n \n With everything happening with pgvector and Postgres, it’s not a surprise that there was a plethora of AI talk submissions at this year’s POSETTE. In the end, we landed on 7 AI-related talks. \n \n In alphabetical order by talk title: \n \n \n 6 things you can do with azure_ai & PostgreSQL on Azure, by Denzil Ribeiro (livestream 3, AI, azure_ai, AzureDBPostgres, Flexible Server, pgvector) \n Advancing Drug Search with PostgreSQL and Azure AI, by Taras Kloba (livestream 4, ai, azure_ai, AzureDBPostgres, customer) \n From Postgres full text search to Retrieval Augmented Generative search, by Adam Wølk (livestream 2, ai, AzureDBPostgres, rag) \n pgvector for Python developers, by Pamela Fox (livestream 3, ai, ecosystem, pgvector, python, orm, psycopg, demo) \n Postgres-powered AI: Running an End-to-End AI Platform with Postgres on Azure, by Jaehyun Sim of Ikigai Labs (livestream 1, ai, AzureDBPostgres, customer) \n Semantic search with Django, PostgreSQL, & pgvector, by Paolo Melchiorre of 20tab (livestream 4, AI, django, ecosystem, pgvector, python) \n Vector data in Postgres - how's it different from “normal” data?, by Heikki Linnakangas of Neon (livestream 2, AI, data types, HNSW, postgres, pgvector) \n \n \n 15 Postgres core talks \n \n Lots of Postgres goodness here. In alphabetical order by talk title: \n \n \n Beyond Joins and Indexes, by Bruce Momjian of EDB (livestream 3, prolific presenter, query optimizer, tips) \n Even JSONB In Postgres Needs Schemas, by Chris Ellis of Nexteam (livestream 2, customer, json, schemas) \n Everything you need to know about Postgres Row Level Security, by Paul Copplestone of Supabase (livestream 1, security, startup) \n Hazards of logical decoding in PostgreSQL, by Polina Bungina of Zalando SE (livestream 4, cdc, logical decoding) \n How/Why to Sweep Async Tasks Under a Postgres Table, by Taylor Troesh (livestream 3, queues, Postgres as a platform) \n Partitioning your Postgres tables for 20X better performance, by Derk van Veen of Adyen (livestream 4, customer, joins, partitioning, performance, tips) \n Postgres Storytelling: What’s going on with Synchronous Replication?, by Boriss Mejías of EDB (livestream 2, Postgres storytelling, replication, WAL) \n PostgreSQL Partitioning: Slicing and Dicing for Performance and Easier Maintenance, by Ryan Booz of Redgate (livestream 2, maintenance, partitioning, performance) \n PostgreSQL performance tips you have never seen before V2.0, by Hans-Jürgen Schönig of CYBERTEC (livestream 4, performance, tips) \n PostgreSQL physical replication - internals, latest development and opportunities, by Krishnakumar (KK) Ravi and Melih Mutlu (livestream 3, replication, WAL) \n Revitalizing Outdated Data Models with PostgreSQL Views, by Newvick Lee of Careteam Technologies (livestream 3, data modeling, postgresql views) \n Scaling the Wall of Text: Logging Best Practices in PostgreSQL, by Richard Yen of EDB (livestream 1, logging, performance, security, tips) \n Tuning Parameters in Postgres vs. Tuning Your Queries, by Henrietta Dombrovskaya of DRW (livestream 1, performance, query tuning) \n Where do the performance cliffs come from?, by Tomas Vondra of EDB (livestream 4, performance, performance cliffs, query optimizer) \n You Don't Need a Database Backup Policy, by Karen Jex of Crunchy Data (livestream 4, backups, disaster recovery, DR) \n \n \n 8 Postgres ecosystem talks \n \n “Ecosystem” is the “E” in the middle of POSETTE. In alphabetical order by talk title: \n \n \n Accelerating PL/pgSQL Code Conversion When Migrating to Postgres, by Deepak Mahto (livestream 2, pl/pgsql, migrations, Oracle to Postgres) \n Comparing Postgres connection pooler support for prepared statements, by Jelte Fennema-Nio (livestream 1, connection poolers, pgbouncer, odyssey, pgcat, supavisor) \n Data-intensive PostgreSQL: Three ways to scale, by Marco Slot of Crunchy Data (livestream 2, analytics, citus, extensions, it depends, performance, pg_partman, SaaS, scalability) \n The Open Source Geospatial Community, PostGIS, & Postgres, by Regina Obe of Paragon Corporation and PostGIS PSC (livestream 2, community, geospatial, KEYNOTE, postgis) \n Lessons Learned from benchmarking and profiling distributed PostgreSQL, by Lotte Felius, a PhD Student in the Database Architectures group at CWI (livestream 2, benchmarking, citus, extensions, performance, ycsb) \n SaaS on Rails on PostgreSQL, by Andrew Atkinson, author of High Performance PostgreSQL for Rails (livestream 1, citus, extensions, multi-tenancy, rails, ruby, saas) \n State of the Postgres Extension Ecosystem, by David Wheeler of Tembo (livestream 1, extensions, pgxn) \n Vindicating ZFS with PostgreSQL: Unleashing the Power of Scalability, by Federico Campoli (livestream 4, file system, storage, zfs, zol) \n \n \n 8 Azure Database for PostgreSQL talks \n \n \n All The Postgres Things at Microsoft, POSETTE edition, by Charles Feddersen (livestream 1, AzureDBPostgres, cloud, community, conferences, KEYNOTE, open source) \n Autotuning PostgreSQL on Azure Flexible Server, by Luigi Nardi of DBtune (livestream 4, AzureDBPostgres, machine learning, performance, query tuning, self-driving database) \n HA and DR at a glance with Azure Database for PostgreSQL, by Silvano Coriani (livestream 2, AzureDBPostgres, DR, HA, multi-region DR, PaaS) \n Making Postgres inserts faster on Azure, by Gayathri Paderla (livestream 1, AzureDBPostgres, performance) \n Tales from the Field - Oracle to PostgreSQL migrations, by Adithya Kumaranchath (livestream 3, migrations, Oracle to Postgres) \n Using Azure Query Store to Understand PostgreSQL Performance, by Grant Fritchey of Redgate (livestream 3, AzureDBPostgres, performance, query store, query tuning) \n What Enterprises like about Azure Database for PostgreSQL – Flexible Server, by Kanchan Bharati (livestream 1, AzureDBPostgres, cloud, enterprise) \n What Makes Azure Database for PostgreSQL Great for Developers?, by Varun Dhawan (livestream 3, AzureDBPostgres, cloud, developers, extensions, ecosystem) \n \n \n 4 Postgres community talks \n \n \n A Walking Tour of PostgreSQL, by Thomas Munro (livestream 4, community, KEYNOTE, open source, postgres history, postgres contributor story) \n How to Work with Other People, by Jimmy Angelakos and Floor Drees (livestream 2, collaboration, community, neurodiversity, open source, people) \n Open Source Contributions to Postgres: The Basics, by Elizabeth Christensen of Crunchy Data (livestream 1, contributing to postgres, community) \n Why I love open source development & what I learned from K8s, by Sarah Novotny (livestream 3, collaboration, community, kubernetes, open source) \n \n \n Please tell your friends & mark your calendars for this year’s POSETTE \n \n If you are into PostgreSQL and into continuous learning, join us on Jun 11-13. No travel required. \n \n \n Livestream 1: on Tue Jun 11 from 8:00am – 2:00pm PDT (UTC -7) with 11 unique talks (add to calendar / link to Livestream 1 schedule) \n Livestream 2: on Wed Jun 12 from 8:00am – 2:00pm CEST (UTC +2) with 11 unique talks (add to calendar / link to Livestream 2 schedule) \n Livestream 3: on Wed Jun 12 from 8:00am – 1:30pm PDT (UTC -7) with 10 unique talks (add to calendar / link to Livestream 3 schedule) \n Livestream 4: on Thu Jun 13 from 8:00am – 1:30pm CEST (UTC +2) with 10 unique talks (add to calendar / link to Livestream 4 schedule) \n Virtual hallway track is in the #posetteconf channel on the Microsoft Open Source Discord. You’re invited to pop in, say hello, and ask questions. \n Opportunities for cool SWAG: There will be chances to snag sticker swag for those who join the livestreams—plus a cloud skills challenge for those who are into Azure Database for PostgreSQL. \n \n \n And if you do the social media thing and want to help spread the word about the POSETTE livestreams to your friends and networks, you can follow @PosetteConf on X/Twitter to stay connected—or you can follow us on Mastodon or also on Threads. \n \n Final thank you’s \n \n And while this blog post has already thanked the 44 speakers and 7 livestream co-hosts, it’s time to thank everyone at Microsoft involved in organizing POSETTE 2024 especially the organizing chair Teresa Giacomini. And immense gratitude to the talk selection team without whom we wouldn’t have this amazing roster of talks. \n \n We hope you get a lot of value out of POSETTE: An Event for Postgres 2024. Happy learning! \n \n \n \n Footnotes \n \n \n Not only was PGConf.dev fun, but according to Postgres committer Peter Eisentraut the conference was so engaging that nothing happened in the Postgres code base for days. PGConf.dev appears to be the cause of the “longest hiatus [in Postgres commits] in over 20 years and the 4 th -longest of all time.” Says Peter Eisentraut, “It might never be this quiet again!” ↩ \n \n \n ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"15096","kudosSumWeight":4,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA0MGk1MThBNUU2M0VEQjNFQjY2?revision=12\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1MWlCNTQ3NUQzMzEzRjE2OTZD?revision=12\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1MmkyQjNFQzlFMTQ2QjNGMjhD?revision=12\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDQ","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1Nmk4NjBEMTgxRTZGOEQwOTg2?revision=12\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDU","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTYwMTMwLTU4OTA1M2lEM0QyNjg5NTZFODY3NERG?revision=12\"}"}}],"totalCount":5,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"Conversation:conversation:4140085":{"__typename":"Conversation","id":"conversation:4140085","topic":{"__typename":"BlogTopicMessage","uid":4140085},"lastPostingActivityTime":"2024-05-16T12:16:36.493-07:00","solved":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MDg5MGkyQTVBMEQzOUZBOTdGN0Iy?revision=26\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MDg5MGkyQTVBMEQzOUZBOTdGN0Iy?revision=26","title":"Whats-new-with-Postgres-at-Microsoft-and-coffeecup-blog-graphic-1200x675.png","associationType":"TEASER","width":1200,"height":675,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MTY2M2lEM0NCNzEyNDczNzkwMzgx?revision=26\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MTY2M2lEM0NCNzEyNDczNzkwMzgx?revision=26","title":"Detailed-infographic-of-Microsoft-Postgres-workstreams-with-Slonik-coffeecup-for-15May2024-edition-FINAL-1920x1584.png","associationType":"BODY","width":1920,"height":1584,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MDkwN2lGQjE4QzYzOURGRTM2REQy?revision=26\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MDkwN2lGQjE4QzYzOURGRTM2REQy?revision=26","title":"POSETTE-acronym-pronounce-4livestreams-hosted-by-Microsoft-14May2024.png","associationType":"BODY","width":1920,"height":1080,"altText":null},"BlogTopicMessage:message:4140085":{"__typename":"BlogTopicMessage","subject":"What’s new with Postgres at Microsoft, 2024 edition","conversation":{"__ref":"Conversation:conversation:4140085"},"id":"message:4140085","revisionNum":26,"uid":4140085,"depth":0,"board":{"__ref":"Blog:board:ADforPostgreSQL"},"author":{"__ref":"User:user:415380"},"teaser@stripHtml({\"removeProcessingText\":true,\"truncateLength\":-1})":" \n Overview of Postgres workstreams at Microsoft in the last 8 months, both open source and in the cloud on Azure. This 2024 edition is a newer, completely updated version of a popular blog post from August 2023. ","introduction":"","metrics":{"__typename":"MessageMetrics","views":19475},"postTime":"2024-05-14T11:11:29.692-07:00","lastPublishTime":"2024-05-16T12:16:36.493-07:00","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})":" In this post you’ll get a bird’s eye view of all the Postgres work happening at Microsoft—with highlights for each of the workstreams from the last 8 months. And there’s a lot of ground to cover. Our PostgreSQL database investments encompass both Azure and open source, the Postgres core plus the broader Postgres ecosystem, plus PG community work too. \n \n For anyone who still thinks of Microsoft as only a SQL Server company, well, that may be our past—but our present and future very much include PostgreSQL too. \n \n Why does this post exist? Because of this conversation: \n \n \n [Friend] It’s hard to keep track of all the Postgres work at Microsoft. Maybe you can write a blog post. \n [Me] Ok. \n [Me] So here is the first version of this “What’s new with Postgres at Microsoft” post, published late last Aug 2023. \n [Also Me] Where do the months go? How have 8 months gone by since I published the previous version of this post? \n \n \n Pulling together all these highlights is so much fun because I get to interview some of the many super-smart Postgres developers in our team. \n \n Ok, so let’s dive into specifics. \n \n The Microsoft workstreams covered in this post includes open-source contributions to the PostgreSQL core; development on Postgres extensions such as Citus, work on key utilities in the PG ecosystem such as PgBouncer, pgcopydb, and Patroni; our community work around events such as the upcoming POSETTE: An Event for Postgres (free and virtual, happening Jun 11-13) as well as talks and podcasts—and of course, our work on the managed database service, Azure Database for PostgreSQL. \n \n This table of contents follows the layout of this meticulously hand-made infographic, starting with the top-left box and proceeding counter-clockwise. Each of these links will take you straight to whichever sections you’re most interested in. Or you can grab an espresso and read the post in its entirety. \n \n \n Azure Database for PostgreSQL – Flexible Server \n Contributing to Postgres open source \n Citus open source extension \n Postgres ecosystem \n Postgres community work \n Azure Cosmos DB for PostgreSQL \n \n \n \n Azure Database for PostgreSQL – Flexible Server \n \n Our team’s flagship PostgreSQL managed database service is called Azure Database for PostgreSQL – Flexible Server. \n \n Flexible Server meets the needs of myriad customers—from large enterprises to small to medium-sized businesses to early-stage startups—and has been growing in its capability, month after month after month. \n \n Highlights of new features rolled out in the last 8 months \n \n \n Postgres 16 support: Less than 2 months from the GA of the PostgreSQL 16 open source release, Postgres 16 support was made generally available (GA) in Azure Database for PostgreSQL – Flexible Server. And while major version upgrade support for Postgres 16 took a bit longer, the good news is that major version upgrade for Postgres 16 is now available in Preview, too. \n Private Link: With the GA of Private Link in Azure Database for PostgreSQL, traffic between your virtual network and our PostgreSQL service navigates the Microsoft backbone network, which means you no longer need to expose your service to the public internet. Now generally available (GA), this feature has been very much in demand by many of you who are enterprise customers. (More details in the docs.) \n Multi-region disaster recovery / GeoDR: The GA of our “Geo-Disaster recovery with read replicas” includes 2 major capabilities (explained in this blog post virtual endpoints and “promote to primary server”. Virtual endpoints mean you don’t need to change connection strings in your application. And “promote to primary server” helps to minimize downtime when manually promoting read replicas to primary—such as when you’re in the face of some type of regional disruption. The term most people use to describe this feature is “hassle-free”. \n TLS version 1.3 support: TLS stands for “Transport Layer Security” and is the modern version of SSL, a key component in security for client-server communications. Once you set the ssl_min_protocol_version parameter to the value of TLSv1.3 , Azure Database for PostgreSQL – Flexible Server will mandate the use of TLS 1.3 for all of your client connections. In addition to giving you stronger security, TLS 1.3 also improves performance during the encryption process. Tip: Our security experts strongly recommend you use the latest version of TLS to encrypt your connections to Flexible Server. (More details in TLS documentation.) \n Microsoft Defender integration: Security matters to all of us, and we all need to increase our defenses to stay ahead of the bad actors. We added Microsoft Defender for Cloud support so you can detect anomalous activities that might indicate harmful attempts to access your database. When enabled, this capability provides proactive anomaly detection; real-time security alerts; guided resolution steps; and integration with Microsoft Sentinel. (More details in documentation.) \n pgvector 0.6.1 extension support: The pgvector extension to Postgres enables you to store and search vectors in Postgres, which in turn makes PostgreSQL a powerful vector database, enabling all sorts of generative AI capabilities. So, yes, we support pgvector in Flexible Server on Azure—as of the writing of this blog post, pgvector 0.6.1 is supported. \n azure_ai extension (Preview): With the azure_ai extension to Azure Database for PostgreSQL, you can use Azure OpenAI directly from Azure Database for PostgreSQL. This means (quoting from a blog post I wrote a few months ago) “you can generate text embeddings by using SQL queries to call into both Azure OpenAI and Azure AI Language services—without needing a separate application layer.” Here’s a 5-minute demo I made, and here’s the announcement blog post from Nov 2023. \n Real-time text translation (Preview): The azure_ai extension now includes real-time text translation capabilities using Azure AI Translator. The translation is done in real-time and the translated text can be used immediately or stored in Postgres for future use. You can filter out swear words, too. (More details in the announcement blog post about how to use this feature.) \n Real-time ML prediction (Preview): Introduced in Mar 2024, the azure_ai extension enables you to invoke machine learning models hosted on Azure Machine Learning, in real-time. The announcement blog post explains how to use this new feature—and it’s relevant for you if you’re building applications to do fraud detection, product recommendations, transportation routing, equipment maintenance, or healthcare patient predictions, among others. \n Migration service, both online & offline: The migration service in Azure Database for PostgreSQL (overview here) is useful for anyone looking to onboard onto Flexible Server. Offline migration to Flex is supported from Single Server; from RDS for PostgreSQL; from on-prem; or from Azure VMs. And if you’re migrating from Single Server to Flex Server, online migration is also supported, giving you a seamless setup—plus continuous operations with zero downtime. \n Major version upgrade support for Postgres 16 (Preview): In-place major version upgrade—which uses the popular pg_upgrade capability from core Postgres—enables you to upgrade existing Flexible Servers to newer versions of Postgres with minimal downtime and a simplified upgrade process. With the addition of Postgres 16, major version upgrade is now supported to upgrade to versions 16, 15, 14, 13, and 12. (More details in the documentation.) \n Major version upgrade logging: When enabled, this feature gives you access to detailed Postgres upgrade logs during major version upgrades—and gives you access to the PG_Upgrade_Logs either via the Azure Portal or via the CLI. (More details in the documentation.) \n Server Logs with CLI support: In November 2023, we enhanced the Server Logs feature for Flexible Server, in both the portal and the CLI. The updated server logs feature is now easy to enable (and disable) through the Azure portal. Also, you can configure the retention period with options ranging between 1 to 7 days. Additionally, you can access and download your server logs from the Azure portal or you can also download service logs by using the CLI. \n Grafana Monitoring integration: The Grafana Dashboard for Monitoring with Azure Database for PostgreSQL is just as good as this blog post makes it sound. For those of you who love Grafana it’s worth downloading from the Azure Grafana Gallery. With it, you can monitor your Flex Server database’s availability, active connections, CPU utilization, and storage metrics. Also, there’s a seamless integration between Azure Monitor and Grafana. \n 30 new monitoring metrics: Over the last 8 months, over 30 new monitoring metrics have been added for Flexible Server. This monitoring concepts page in the documentation spells out what the default metrics are (captured minutely, stored for 93 days, queryable in 30 day intervals)—as well as what the enhanced metrics are (disabled by default.) Also there are autovacuum metrics! And a table that outlines the options for visualizing your Flexible Server metrics: in the Azure Portal, with Azure Monitor’s metrics explorer, and with Grafana. \n New regions in Italy, Israel, Norway, Poland, UAE, and USA: In Sep 2023, we introduced support for 3 new regions: Norway West, Poland Central, and US Gov Texas. Then in Jan 2024, we added support for Italy North, Israel Central, and UAE Central. This support for 60 regions is part an ongoing effort to give you localized cloud services in as many parts of the world as possible, enabling you to meet business and regulatory obligations—as well as requirements for in-country disaster recovery, where needed. And, we plan to add 8-10 more regions in the next 12 months. You can find the list of supported regions in the documentation. \n Premium SSD v2 (Preview): The description of “cutting-edge technology with the most advanced general-purpose block storage solution with unparalleled price-performance” is chock full of adjectives, but I’ve seen the (not yet published) performance benchmarks and the results are impressive. More details about Premium SSD v2 are in the docs, including comparisons between Premium SSD v2 vs. Premium SSD. Also, Premium SSD v2 gives you a max disk size of 64 TiB. \n Storage autogrow: The optional storage autogrow feature does what it says: it automatically increases the size of the provisioned storage of your Flexible Server when storage consumption reaches 80% or 90%, depending on the size of the disk. Thresholds are spelled out clearly in the documentation. \n Near-zero downtime scaling: With near-zero downtime scaling, the server restart has been reduced to less than 30 seconds after modifying your storage or compute tiers, hence the moniker “near-zero”. This feature kicks in when you scale compute and storage (scaled independently, or scaled together.) It’s available in all public regions for non-HA servers. And for HA-enabled servers, near-zero downtime scaling is currently enabled for a limited set of regions, with more regions to be enabled in a phased manner in the future. \n \n \n Free trial for kicking the tires of Azure Database for PostgreSQL \n \n If you’re looking for a free trial for Flexible Server, this “Use an Azure free account” docs page walks you through how to get 750 hours (monthly) of Burstable B1MS instance with 32 GB of storage and 32 GB of backup storage for the first 12 months. \n \n What’s your Single Server migration plan? \n \n If you’re still running on the first-generation PostgreSQL managed service called “Single Server” (you know, the one that doesn’t run on Linux), then you already know: \n \n \n Retirement of Single Server: was announced in March of 2023 and will be retired on 28 March 2025. \n Flexible Server performance advantages: If you’re looking for more incentive to make the switch to Flexible Server, maybe these 3 rd -party performance benchmarks (using the popular HammerDB benchmarking tooling) will help motivate. The results of this benchmark: Flexible Server processes orders 4.71 times faster than Single Server—and can do 2.85 times more tasks at the same time. \n Online (and offline) migration tooling: And these online migration tools (Preview) have been helping lots of customers make the move from Single Server to Flex. \n \n \n Our Azure team is hiring! \n And... our Postgres team on Azure is hiring! \n \n Contributing to Postgres open source \n \n Microsoft has been hiring and growing a team of Postgres open source contributors since 2019—with a focus of contributing to the Postgres core. \n \n From the previous Aug 2023 version of this blog post, our Microsoft commitment to sponsoring the ongoing development of Postgres remains unchanged: \n \n \n In order to thrive, an open source ecosystem needs commercial support as well as volunteer efforts. Even open source developers need to eat! For the Postgres open source ecosystem to flourish, companies like Microsoft need to support the project by funding development in the Postgres core. Which we do. \n \n PostgreSQL is a complex piece of software that runs mission-critical workloads across the globe. To provide the best possible experience on Azure, it follows that we need to thoroughly understand how it works. By having PostgreSQL committers and contributors on our team, they can share knowledge internally across different orgs, or directly answer internal questions regarding incidents or extension development. \n \n Because today's cloud operates at a scale most on-prem solutions never encountered, unique cloud data center problems, often relating to performance, now require special attention. Our in-house team of deep Postgres experts are focused on tackling these cloud-scale issues upstream, in the Postgres core. Another benefit: our team's Postgres expertise gives Azure customers confidence in our cloud database services, too. \n \n Commercial funding of PostgreSQL developers has another benefit: it gives developers the long-term stability to pursue the big things, the groundbreaking changes that are super important to the future. In particular, the Postgres contributor team at Microsoft is focused on some big architectural changes (example: Asynchronous IO) that you wouldn’t be able to do without the funding for a full-time, multi-year effort. \n \n \n Two (exciting) Postgres contributor updates on Microsoft team \n Our Postgres open source contributor team is continuing to grow. \n \n \n Amit Langote, Postgres committer, has joined the Postgres team at Microsoft! (Yes, Amit is the engineer who committed the json_table work into Postgres 17.) \n \n \n \n Melanie Plageman, Postgres contributor extraordinaire on our team, has accepted the invitation to become a PostgreSQL committer. Melanie’s history of contribution and collaboration in the Postgres community made this a well-earned promotion. Many of us echo the sentiment of these words from Álvaro Herrera to congratulate Melanie in her new PG committer role: “May your commits be plenty and your reverts rare ”. \n \n And ... our Postgres contributor team is hiring! \n \n Highlights of Postgres 17 contributions \n \n There is so much goodness in PostgreSQL 17, which hit code freeze last month in April and is expected to GA later this calendar year, usually in Sep or Oct—with a beta release that typically lands in July or August. \n \n Highlights of the over 300 commits to PG17 authored or co-authored by members of our team are below. Attribution is part of the culture in the Postgres open source community, so it must be said that among the many contributions our team made to PG17, the work was done with collaboration from PG contributors around the world, both inside and outside Microsoft. \n \n Also want to give a shout-out to our team of Postgres committers (a “committer” is an engineer who has the “commit bit” to merge changes into the Postgres core, equivalent to to the term “maintainer” in other open source projects)—because not only did our Postgres committers commit their own work in Postgres 17, but almost a third of their commits were made on behalf of other developers. \n Streaming I/O in Postgres 17 \n \n \n Streaming I/O with I/O combining: This new capability added to Postgres 17 is the start of something big. Streaming I/O (with I/O combining) introduces a whole new paradigm into Postgres—and is an important step toward a future of asynchronous I/O in Postgres. Now asynchronous I/O will NOT be available in Postgres 17, but this Streaming I/O work will still improve performance for users (initially when it comes to sequential scans and ANALYZE, as explained in the next bullets.) Historically, Postgres reads data 1 page at a time. With the new Streaming I/O capability in PG17, Postgres can look further ahead and see what’s coming. So instead of reading 1 page at a time, Postgres can combine those pages and do a single read of 16 pages. This means reading 128K instead of 8K in a single read. To enable this, a new GUC has been added in PG17 called io_combine_limit which has a default setting of 128K. (link to commit for API for streaming I/O / io_combine_limit commit) When talking to Thomas Munro, one of the authors of Streaming I/O in Postgres 17, he said this about the project: \n “It's a big project, and it's hard work to find a pathway that gives incremental benefits through digestible improvements. Each piece has got to make sense on its own. The new stream abstraction already enables I/O combining and advice-based prefetching in 17 as of the time of writing (it hasn't shipped yet, so watch this space to see if it sticks), but the real story is that it paves the way for a fully modernized I/O stack. That's the kind of vision that takes long term funding, that Microsoft is bringing to the PostgreSQL community.” \n If you want to dive deeper into this new capability you have 3 places to look: \n \n Video of talk at PGConf.EU: Andres Freund, who originally proposed the idea of I/O streams as a core abstraction—and provided invaluable feedback on the concrete patches eventually proposed to PostgreSQL—gave a talk at PGConf.EU in Prague in Dec 2023 titled: “The path to using AIO in Postgres”. \n Upcoming talk at PGConf.dev: Thomas Munro, one of the authors of Streaming I/O from Microsoft, will be giving a talk at the upcoming talk at PGConf.dev 2024 conference in Vancouver that will go deeper on this topic, titled: Streaming I/O and Vectored I/O. \n 5mins of Postgres: Lukas Fittl of pganalyze has recorded a short bite-sized overview of the new feature: Waiting for Postgres 17: Streaming I/O for sequential scans & ANALYZE. \n \n \n True fact: it was micro-benchmarking the performance of this PG17 Streaming I/O work that started the absurd chain of coincidences that led Andres Freund to discover the xz utils backdoor. Anyone who knows Andres is not surprised he decided to investigate sshd processes that were using a surprising amount of cpu. Maybe that's the moment Andres got the first of many \"that's weird\" feelings that fueled his investigation. Thank you Andres! \n \n Streaming I/O in sequential scans: Thanks to this new ability to do I/O combining and bigger 128K reads (hence fewer system calls too), some SELECT queries tied to sequential scans will be faster in Postgres 17. A significant amount of refactoring went into making sequential scans take advantage of the new streaming I/O API to become what the developers call “async friendly” and while the real motivation is to pave the way to asynchronous I/O in the future, it’s quite nice that some PG17 users will see performance benefits in sequential scans, too! (link to commit) \n Streaming I/O in ANALYZE: To save you the trouble of looking it up in the docs, “ANALYZE collects statistics about the contents of tables in Postgres, and stores the results in the pg_statistic catalog.” These statistics are important and get used by the query planner. And in Postgres 17, ANALYZE is the first user for Streaming I/O with random streams, which doesn’t benefit from I/O combining but does benefit from prefetching. The benefit to users: ANALYZE table_name will be faster in Postgres 17. (link to commit) \n \n Query Planner Improvements in Postgres 17 \n \n \n Query Planner to use Merge Append to efficiently UNION queries: This change in PG17 can improve performance significantly if you have a query with a UNION clause. In particular, this change is especially helpful if the top-level UNION contains a LIMIT node that limits the output rows to a small subset of the unioned rows. How is this possible? With this change, Postgres will be able to use presorted input in order to eliminate duplications—where previously, the Postgres query planner had to use a Hash Aggregate or had to sort the entire Append result. (link to commit) \n Query Planner to better handle redundant IS [NOT] NULL: When you create a table you can create a column, select the name and type and whether it can allow NULLS or not—and you can put a NOT NULL constraint on the column. When you write a query you might write WHERE column IS NOT NULL and before this PG17 change, Postgres would always evaluate even if it knew there couldn’t be any NULLs in the table. As of Postgres 17, Postgres is a lot smarter when a column has the constraint IS NOT NULL and avoids doing unnecessary work in that scenario. (link to commit) \n \n Performance Improvements in PG17 \n \n \n Vacuum WAL volume decrease & performance improvements: WAL in Postgres is the “write-ahead log” which is used to ensure data integrity and to support backups, point-in-time recovery, and replication. New to Postgres 17, vacuum will now produce less WAL by volume in terms of number of bytes—thereby taking up less space on disk and speeding up replay. Vacuum which freezes tuples may emit 30% less WAL—and writing and syncing these WAL records may take up to 15% less time. (link to commit) \n Reduce memory usage in sort & incremental sort by using a bump memory allocator: The benefit of this change is that Postgres will use less memory for doing sorts, so things don’t have to go to disk because work_mem is full, which means improved sort and incremental sort performance. Also, when Postgres data is more compact in memory, that means Postgres can use CPU caches more efficiently too. (link to bump memory allocator commit / link to use of bump memory allocator for tuplesorts) \n Improve memory allocation performance: These improvements to the 4 different types of memory allocators in Postgres improve the performance of everything—slightly. The way this was implemented was to optimize for the most common code paths which are described in the commits as “hot” paths—as compared to cold paths which are less common and would generally require a malloc anyway so the cold paths would be slower anyway. (link to allocset commit / link to generation and slab commit.) \n Query planner improvements for highly-partitioned tables: By speeding up Bitmapset processing by removing trailing zero words in PG17, the Postgres query planner speed doubled in some of the test cases. In particular, this optimization can make the query planner twice as fast for workloads with a lot of partitioned tables. And, I’m told there is more work that can be done in this area to improve performance even further in the future. (link to Bitmapset commit) \n libpq performance optimization: The detailed name of this feature is “avoid needless large memcpys in libpq socket writing”, and the bottom line is that this improvement makes libpq more efficient. The result: improved performance when clients have large amounts of data in one message— such as a SELECT outputting large (>8k) variable length columns such as text; or a big COPY TO STDOUT ; or in pg_basebackup . (link to commit) \n libpq query cancellation: Prior to Postgres 17, if you used an event loop in your application to send multiple queries at the same time (such as when using the \"async\" feature that many programming languages have) then sending a query cancellation would block this event loop—and thus all your queries—until the cancellation was done. Thanks to this commit, this not a problem anymore in PG 17! More details in this blog post on the Dalibo site: Improved query cancellation in PostgreSQL 17 and Psycopg 3.2—clearly people are happy that you can now cancel in-progress queries in a non-blocking manner. In addition, also new to Postgres 17, the connections over which cancel requests are sent will now be encrypted, if the original connection was encrypted. (link to commit) \n Reduce memory usage for JIT: Just-in-Time (JIT) compilation in Postgres can make your queries insanely fast for certain workloads, particularly if you are running expression-heavy queries that are CPU-bound. However, there was an issue with JIT that caused it to leak a lot of memory that was causing some people to turn off JIT. With this fix, which some people are celebrating, you can turn JIT back on, and new users won’t have to turn it off. (link to commit) \n pg_upgrade performance: This improvement in PG17 makes pg_upgrade runs faster, especially during the compatibility check phase, which many users like you may run over and over again to make sure your cluster is ready to be upgraded—or to make sure nothing problematic has snuck into your Postgres cluster as you’re preparing to upgrade. Speedup of the pg_upgrade check varies depending on the Postgres version being upgraded from, but will typically be 2x or better. For those of you who are Flexible Server customers of Azure Database for PostgreSQL, this improvement will also benefit major version upgrades to Postgres 17 once it’s available. (link to commit / link to mailing list discussion) \n \n \n Developer experience in PG17 \n \n \n pg_buffercache_evict test tool: A superuser-only developer test utility. From the commit, “When testing buffer pool logic, it is useful to be able to evict arbitrary blocks. This function can be used in SQL queries over the pg_buffercache view to set up a wide range of buffer pool states. Of course, buffer mappings might change concurrently so you might evict a block other than the one you had in mind, and another session might bring it back in at any time. That's OK for the intended purpose of setting up developer testing scenarios.” This pg_buffercache_evict tool will enable future enhancements to memory plasticity, which will be explored in this upcoming talk at PGConf.dev by Krishnakumar Ravi and Palak Chaturvedi. (link to commit) \n Meson build system maintenance: Lots of ongoing maintenance on the newer build system for Postgres, called Meson. Meson is an open source build system that is faster, multiplatform, modern, cleaner, popular. And Meson is much more user friendly when compared to the venerable autoconf and make-based system, which has served PostgreSQL very well for decades but is starting to show its age. \n Postgres CI maintenance: In Postgres 17 there are myriad commits to maintain the Postgres CI that was first adopted in Postgres 15. As you would expect, the Postgres CI continues to be absolutely transformative. With Cirrus CI, every commit you push into your GitHub repo (cloned from PostgreSQL) will get tested across 4 operating systems, along with extra checks—catching a lot of problems early. The result: reviewers can focus on higher level architectural questions, and the build farm (which runs the test suites after things are committed) no long turns red as much as it used to. \n \n \n Postgres 17 release notes (first draft!) \n \n Hot off the press, while I was writing this blog post, Bruce Momjian of the Postgres core team published the first draft of the Postgres 17 release notes in the “PostgreSQL devel” docs branch. While these PG17 release notes are still being worked on and will definitely change, they give a taste of what’s to come. \n \n Citus open source \n \n Citus is an open source extension to Postgres (open source repo on GitHub) that gives you the superpower of distributed tables. Who uses Citus? People with data-intensive applications that need more compute, memory, or scale than they can get from a single Postgres node. \n \n The tagline for the open source project is that “Citus gives you the Postgres you love, at any scale.” \n \n And is Citus popular? There are almost 10,000 stars on GitHub—maybe your star can be the one that pushes Citus over the edge to hit 10K. ️ \n \n New Citus open source features in last 8 months \n \n \n Postgres 16 support: Published on the Citus Open Source Blog, this Citus 12.1 release blog post announced the Citus support of Postgres 16 in Citus 12.1, within just one week of the PG16 release. (More details in the Citus 12.1 release notes.) \n PG16: JSON aggregate support: As of Citus 12.1, Citus now supports and parallelizes the new JSON_ARRAYAGG() and JSON_OBJECTAGG() aggregates. (Code example in the 12.1 release notes.) \n PG16: DEFAULT in COPY: By using the new DEFAULT option in PG16 with COPY FROM , you can control in which rows you want to insert the default value of a column (vs. inserting a defined, non-default value.) And as of Citus 12.1, this new DEFAULT option is supported and propagated to the nodes in a distributed cluster. (Code example in the 12.1 release notes.) \n PG16: more DDL propagation: Citus now propagates new CREATE TABLE , VACUUM , and ANALYZE options to worker nodes in the distributed cluster. And according to the 12.1 release notes, Citus can propagate the STORAGE attribute if it is specified when creating a new table. In addition, Citus can now propagate BUFFER_USAGE_LIMIT , PROCESS_MAIN , SKIP_DATABASE_STATS and ONLY_DATABASE_STATS options in VACUUM and/or ANALYZE . \n ICU collation rule propagation: Prior to Postgres 16, Citus already supported distributed collations. So with the PG16 addition of custom ICU collation rules that can be created using the new “rules” option in CREATE COLLATION , Citus just needed to support the propagain of this new PG16 collation “rules” option. (Details in 12.1 release notes.) \n Support TRUNCATE triggers on Citus foreign tables: Those of you who care about audit logging were probably pleased to see Postgres 16 add support for TRUNCATE triggers for foreign tables. With Citus 12.1 you can use the new TRUNCATE triggers features with Citus foreign tables too. (More details in the announcement blog post.) \n Combine query-from-any-node with load balancing: PG16 added a new load balancing feature in libpq that lets you specify load_balance_hosts and set it to random . This new libpq load balancing feature makes it easy to load balance in combination with the Citus query-from-any-node feature. (More details in the 12.1 release notes.) \n Distributed schema move: Citus 12.1 includes some schema-based sharding improvements, including the new citus_schema_move() function, which enables you to move a distributed schema to a different node. (See 12.1 release notes for more details.) \n GRANT ... ON DATABASE propagation: More schema-based sharding improvements in Citus 12.1: now you can propagate GRANT/REVOKE ON DATABASE commands. (Code examples in the release notes.) \n Distributed schema table from local table when identity column: Before Citus 12.1 it was not possible to create a distributed schema table from a local table if it uses an identity column. Code example of how you can take advantage of this new feature is in the 12.1 blog post. \n Citus dev containers!: From the Citus commit, the new Citus devcontainer “allows for quick generation of isolated development environments, either local on the machine of a developer or in a cloud, like GitHub Codespaces.” With the introduction of Citus dev containers, it’s now much easier to setup the Citus development environment, making it easier for new contributors. Detailed how-to instructions are in the Contributing.md in the Citus repo. \n \n \n Postgres ecosystem \n \n \n Patroni 3.2 and 3.3: Patroni is the most popular High Availability (HA) solution for Postgres. It helps you deploy, manage, and monitor HA clusters using streaming replication—and it’s open source. Alexander Kukushkin from our team is the technical lead and collaborates with engineers from different companies on Patroni—also, Alexander gave a recent talk at Nordic PGDay 2024 titled “Step-by-step Patroni cooking guide.” In Patroni 3.2, notable new features include priority failover; generating Patroni configuration from a Postgres cluster not yet managed by Patroni; and making permanent physical replication slots on standby nodes. In Patroni 3.3, notable features include improved visiblity of pending Postgres restart; and possibility to run standby nodes without replication by replaying WAL only from archive. \n PgBouncer 1.21.0, 1.22.0, and 1.22.1: PgBouncer is a popular open source connection pooler—and in the last 8 months there have been 3 notable PgBouncer releases that our team has contributed to. I love the “names” the PgBouncer team gives to their releases. PgBouncer 1.21.0 is called “The one with prepared statements” which adds support for protocol-level named prepared statements, which Jelte tells me was one of the most requested features for PgBouncer. With 1.21.0, JDBC works out of the box, npgsql (a .NET client) works out of the box, and you no longer need to turn off PgBouncer when using prepared statements. Instead you just enable prepared statement support in PgBouncer—and queries are faster in most scenarios where you run the same query over and over again, especially if those SQL queries are large queries. How fast? According to the changelog for 1.21.x, “in synthetic benchmarks this feature was able to increase query throughput anywhere from 15% to 250%, depending on the workload.” PgBouncer 1.22.0 is called “DEALLOCATE ALL” and PgBouncer 1.22.1 is called “It’s summer in Bangalore.” (More details in the 1.22.x changelog.) \n pgcopydb 0.14 and 0.15: The pgcopydb utility (open source repo on GitHub) automates running pg_dump and pg_restore between two running Postgres servers. Example use cases include migrations to newer hardware, migrations to a newer instances—and also Postgres major upgrades. And our Migration service in Azure Database for PostgreSQL is built on top of pgcopydb , making it relevant to those of you who run on Azure too. There are boatloads of improvements in the v0.15 release and the v0.14 release, mostly about being able to cater to more use cases. Also some memory usage fixes. Dimitri Fontaine’s inputs on what to highlight about recent changes in pgcopydb : “I have been asked a lot about how to resume operations when using pgcopydb, and some users wanted to have a better grasp of how we use snapshots and replication slots and their impact on the ability to resume operations. The new documentation chapter Resuming Operations (snapshots) covers that in details. Oh, the new tutorial is a great place to get started with pgcopydb too.” \n HLL and TopN: HyperLogLog (HLL) and TopN are both approximation algorithms, sometimes called sketch algorithms. HLL is used to solve the count-distinct problem. Our team maintains the HLL open source extension and the primary change in this time period was to add Postgres 16 support. The TopN extension, which we also maintain, is used to calculate the top values according to some criteria. \n activerecord-multi-tenant: Our team maintains the activerecord-multi-tenant gem which makes it easy for multi-tenant Ruby on Rails applications to use row-based sharding with Citus. (Whereas for schema-based sharding you can use the acts_as_tenant gem, on which activerecord-multi-tenant is based.) \n django-multitenant: Similar to activerecord-multi-tenant , this library our team maintains is for multi-tenant applications that want to use row-based sharding—the difference is that this library is for Python and Django applications. (For schema-based sharding there are other libraries you can use that are maintained by the community, with django-tenants being the most popular.) \n \n \n Postgres community work \n \n Given my work as head of Postgres open source community initiatives at Microsoft, it’s no surprise: contributing to Postgres in ways beyond code is near and dear to my heart. I’ve even given a few talks about it. \n \n Listed below are highlights of the community work that our Postgres team at Microsoft has contributed in the last 8 months. \n \n \n Serve on Postgres organizing & talk selection teams: The awesome Postgres community conferences—which happen all around the world—are an opportunity for knowledge sharing, learning, and networking. And if you take advantage of it, the in-person hallway track can open up all sorts of doors for you in the Postgres world. And members of our PG team at Microsoft have served the organization teams &/or the talk selection teams in these Postgres community events in the last 8 months: \n \n PGConf.EU 2023 \n PGConf NYC 2023 and 2024 \n FOSDEM PGDay 2024 \n Nordic PGDay 2024 \n PGDay Chicago 2024 \n PGConf.dev 2024 \n \n \n Sponsor Postgres conferences: Postgres conferences need financial support or they simply won’t happen. And Microsoft is proud to be able to sponsor all of these Postgres events for the Postgres community over the last 8 months: \n \n PGConf NYC 2023 – Platinum sponsor \n PGConf EU 2023 – Platinum sponsor \n PGConf India 2024 – Diamond sponsor \n Nordic PGDay 2024 – Supporter sponsor \n pgDay Paris 2024 – Supporter sponsor \n PGConf Germany – Platinum sponsor \n Postgres Conference Silicon Valley – Partner sponsor \n PGDay Chicago – Gold sponsor \n PGConf.dev 2024 – Gold sponsor \n \n \n POSETTE: An Event for Postgres, happening Jun 11-13: Organized by our Postgres team at Microsoft, POSETTE is a free & virtual developer event, now in its 3rd year, formerly called Citus Con. This year’s event will take place online Jun 11-13. With 4 livestreams, 4 keynotes, 38 talks, 44 amazing speakers—there’s guaranteed to be something for everyone. Check out the schedule to see what people are so excited about, and be sure to save the date. You can also add specific livestream(s) to your calendar: \n \n Livestream 1 \n Livestream 2 \n Livestream 3 \n Livestream 4 \n \n Of course you can always watch the talks on YouTube after the livestreams are over, at your leisure, at 2X speed—but then you’ll miss the opportunity to ask the speakers questions via live text chat while the livestream is happening. If you’re curious, there’s a blog post for why we changed the name to POSETTE. And in the interest of transparency, a blog post about the process for POSETTE talk selection too. \n Host monthly podcast for developers who love Postgres: This monthly podcast for developers who love Postgres started as a pre-event for Year 2 of Citus Con, hence the original name “Path To Citus Con”. The focus is on the human side of Postgres and open source, and we often explore how people in the Postgres community got their start: as developers, as Postgres users, or as Postgres contributors. You can find all 15 past episodes online (or on your favorite podcast platform, as well as on YouTube.) Oh, and we record LIVE on Discord and it’s quite fun to participate in the live chat that happens in parallel to the live recording. \n So many blog posts: You can find many of our Postgres team’s blog posts on Microsoft Tech Community as well as on the Citus Open Source Blog. (And yes, we syndicate our open source blog posts to Planet Postgres.) \n Conference talks at PG events: Both in-person and virtually, our Postgres teams have been active on the conference circuit. How active? Our engineers and subject matter experts delivered 49 talks in the 8 months since I published the previous version of this “what’s new” blog post last August. Later in May, Postgres people on our team will be presenting 6 different sessions at PGConf.dev in Vancouver. And some of my teammates will be presenting virtually at POSETTE in June! \n Citus monthly technical newsletter: Our monthly Citus technical newsletter includes links to latest blog posts and releases of the Citus extension. And it’s easy to join the Citus newsletter. \n Citus Slack for Q&A: If you’re a Citus open source user, you can join our Slack for Q&A about the Citus extension and distributed PostgreSQL. \n PGSQL Phriday contributions: Ryan Booz from Redgate started PGSQL Phriday, a monthly community blog event for the Postgres community. It seems like it started yesterday but there have been 16 blogging events so far so clearly it’s been happening for more than a year. I participated in PGSQL Phriday #014 organized by Pavlo Golub, all about PostgreSQL Events, with this post, an Illustrated Guide to Postgres at PASS Data Summit 2023. \n \n \n \n \n Azure Cosmos DB for PostgreSQL \n \n Azure Cosmos DB for PostgreSQL is a distributed Postgres database service geared toward workloads that need a multi-node database cluster. \n \n Typical workloads for a distributed PostgreSQL database include multi-tenant SaaS, real-time analytics apps such as timeseries, and hybrid transactional and analytical applications. \n \n This “Product updates” page in the docs is a good page to bookmark and is the comprehensive source for new capabilities in Azure Cosmos DB for PostgreSQL. But let’s walk through just a few highlights... \n \n What’s new in Azure Cosmos DB for PostgreSQL in the last 8 months? \n \n Azure Cosmos DB for PostgreSQL is a distributed Postgres service powered by the Citus extension to Postgres—which is geared toward data-intensive applications that need the scale and performance of a multi-node distributed Postgres database cluster. \n \n In the last 8 months, Azure Cosmos DB for PostgreSQL has added GA support for: \n \n Postgres 16 \n 32TiB storage for multi-node clusters \n Customer Managed Keys (CMK) in all regions \n Geo-redundant backup & restore \n EntraID authentication in addition to Postgres roles \n \n \n This Release Notes page in the Azure documentation has even more details about new capabilities in Azure Cosmos DB for PostgreSQL. \n \n Microsoft ❤️ Postgres \n \n In putting together this post I was struck by all the places our Postgres team is contributing to Postgres: first by offering a popular managed Postgres database service on Azure—and also by the ways we contribute to PostgreSQL with code, architecture, reviews, bug reports, commitfest management, CVEs, testing, extensions, ecosystem tooling, conference sponsorships, conference talks, organizing events, and all the rest of the ways we contribute beyond code too. The list goes on. Not to mention the long-term architectural investments in Postgres. And there’s more! I didn’t even mention that Andres Freund serves on the Postgres core team. When Daniel Gustafsson and I were looking at all the metrics about the team’s PG17 open source work, he summarized it well, “...Microsoft employees are involved in all aspects of Postgres.” \n ","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":-1})@stringLength":"44038","kudosSumWeight":10,"repliesCount":0,"readOnly":false,"images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MDg5MGkyQTVBMEQzOUZBOTdGN0Iy?revision=26\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MTY2M2lEM0NCNzEyNDczNzkwMzgx?revision=26\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MTQwMDg1LTU4MDkwN2lGQjE4QzYzOURGRTM2REQy?revision=26\"}"}}],"totalCount":3,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""}},"CachedAsset:text:en_US-components/community/Navbar-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1744658874334","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content","gxcuf89792":"Tech Community","external-1":"Events","s-m-b":"Small and Medium Businesses","windows-server":"Windows Server","education-sector":"Education Sector","driving-adoption":"Driving Adoption","microsoft-learn":"Microsoft Learn","s-q-l-server":"SQL Server","partner-community":"Microsoft Partner Community","microsoft365":"Microsoft 365","external-9":".NET","external-8":"Teams","external-7":"Github","products-services":"Products","external-6":"Power Platform","communities-1":"Topics","external-5":"Microsoft Security","planner":"Planner","external-4":"Microsoft 365","external-3":"Dynamics 365","azure":"Azure","healthcare-and-life-sciences":"Healthcare and Life Sciences","external-2":"Azure","microsoft-mechanics":"Microsoft Mechanics","microsoft-learn-1":"Community","external-10":"Learning Room Directory","microsoft-learn-blog":"Blog","windows":"Windows","i-t-ops-talk":"ITOps Talk","external-link-1":"View All","microsoft-securityand-compliance":"Microsoft Security","public-sector":"Public Sector","community-info-center":"Lounge","external-link-2":"View All","microsoft-teams":"Microsoft Teams","external":"Blogs","microsoft-endpoint-manager":"Microsoft Intune and Configuration Manager","startupsat-microsoft":"Startups at Microsoft","exchange":"Exchange","a-i":"AI and Machine Learning","io-t":"Internet of Things (IoT)","outlook":"Outlook","external-link":"Community Hubs","communities":"Products"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1744658874334","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1744658874334","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1744658874334","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1744658874334","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLink-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1744658874334","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagSubscriptionAction-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagSubscriptionAction-1744658874334","value":{"success.follow.title":"Following Tag","success.unfollow.title":"Unfollowed Tag","success.follow.message.followAcrossCommunity":"You will be notified when this tag is used anywhere across the community","success.unfollowtag.message":"You will no longer be notified when this tag is used anywhere in this place","success.unfollowtagAcrossCommunity.message":"You will no longer be notified when this tag is used anywhere across the community","unexpected.error.title":"Error - Action Failed","unexpected.error.message":"An unidentified problem occurred during the action you took. Please try again later.","buttonTitle":"{isSubscribed, select, true {Unfollow} false {Follow} other{}}","unfollow":"Unfollow"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListTabs-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListTabs-1744658874334","value":{"mostKudoed":"{value, select, IDEA {Most Votes} other {Most Likes}}","mostReplies":"Most Replies","mostViewed":"Most Viewed","newest":"{value, select, IDEA {Newest Ideas} OCCASION {Newest Events} other {Newest Topics}}","newestOccasions":"Newest Events","mostRecent":"Most Recent","noReplies":"No Replies Yet","noSolutions":"No Solutions Yet","solutions":"Solutions","mostRecentUserContent":"Most Recent","trending":"Trending","draft":"Drafts","spam":"Spam","abuse":"Abuse","moderation":"Moderation","tags":"Tags","PAST":"Past","UPCOMING":"Upcoming","sortBymostRecent":"Sort By Most Recent","sortBymostRecentUserContent":"Sort By Most Recent","sortBymostKudoed":"Sort By Most Likes","sortBymostReplies":"Sort By Most Replies","sortBymostViewed":"Sort By Most Viewed","sortBynewest":"Sort By Newest Topics","sortBynewestOccasions":"Sort By Newest Events","otherTabs":" Messages list in the {tab} for {conversationStyle}","guides":"Guides","archives":"Archives"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1744658874334","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarDropdownToggle-1744658874334","value":{"ariaLabelClosed":"Press the down arrow to open the menu"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/OverflowNav-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/OverflowNav-1744658874334","value":{"toggleText":"More"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewInline-1744658874334","value":{"bylineAuthor":"{bylineAuthor}","bylineBoard":"{bylineBoard}","anonymous":"Anonymous","place":"Place {bylineBoard}","gotoParent":"Go to parent {name}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMore-1744658874334","value":{"loadMore":"Show More"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1744658874334","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1744658874334","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1744658874334","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1744658874334","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1744658874334","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageUnreadCount-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageUnreadCount-1744658874334","value":{"unread":"{count} unread","comments":"{count, plural, one { unread comment} other{ unread comments}}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageViewCount-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageViewCount-1744658874334","value":{"textTitle":"{count, plural,one {View} other{Views}}","views":"{count, plural, one{View} other{Views}}"},"localOverride":false},"CachedAsset:text:en_US-components/kudos/KudosCount-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/kudos/KudosCount-1744658874334","value":{"textTitle":"{count, plural,one {{messageType, select, IDEA{Vote} other{Like}}} other{{messageType, select, IDEA{Votes} other{Likes}}}}","likes":"{count, plural, one{like} other{likes}}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageRepliesCount-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageRepliesCount-1744658874334","value":{"textTitle":"{count, plural,one {{conversationStyle, select, IDEA{Comment} OCCASION{Comment} other{Reply}}} other{{conversationStyle, select, IDEA{Comments} OCCASION{Comments} other{Replies}}}}","comments":"{count, plural, one{Comment} other{Comments}}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1744658874334":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1744658874334","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false}}}},"page":"/tags/TagPage/TagPage","query":{"nodeId":"board:ADforPostgreSQL","tagName":"community"},"buildId":"s9moxZsn7wIy4-roQIBP-","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"o365","openTelemetryServiceVersion":"25.1.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/tags/TagsHeaderWidget/TagsHeaderWidget.tsx","./components/messages/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/tags/TagSubscriptionAction/TagSubscriptionAction.tsx","./components/external/components/ExternalComponent.tsx","../shared/client/components/common/List/ListGroup/ListGroup.tsx","./components/messages/MessageView/MessageView.tsx","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx"],"appGip":true,"scriptLoader":[{"id":"analytics","src":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/pagescripts/1730819800000/analytics.js?page.id=TagPage","strategy":"afterInteractive"}]}