Database Replication: Leader-Follower, Quorums, and the Lag Nobody Budgets For
Sync vs async replication, why failover loses writes, and how quorum systems skip the leader entirely. The trade-offs that set your durability story.
The Augmented Dev ยท Archive
Dynamics 365, Power Platform, AI, system design, and web development โ filter by theme or search across every post.
Newsletter
One email per post. No spam, no tracking pixels, unsubscribe anytime.
130 of 179 articles tagged tutorial
Sync vs async replication, why failover loses writes, and how quorum systems skip the leader entirely. The trade-offs that set your durability story.
Hash vs range partitioning, choosing a shard key you won't regret, the hot-partition problem, and why cross-shard queries are the real cost of sharding.
Delayed jobs, cron at scale, and work claiming with SKIP LOCKED. Why every scheduler promises at-least-once and what that forces on your handlers.
Precompute every follower's timeline or assemble it per request? The celebrity edge case that breaks the pretty answer, and the hybrid everyone ships.
Why 'UPDATE balance' is a bug, how double-entry bookkeeping becomes a schema, and the idempotency and reconciliation machinery that keeps money honest.
Why auto-increment dies when you shard, why random UUIDs wreck index locality, and how time-ordered IDs like Snowflake and UUIDv7 thread the needle.
A lock with a TTL can expire while its holder still thinks it owns it. Fencing tokens fix what timeouts break โ and most lock problems have better answers.
B-trees can't answer 2D questions. Geohash, quadtrees, and hex grids turn 'within 2km' into a prefix scan โ plus the boundary problem that trips everyone.
Overloaded systems don't slow down gracefully โ goodput collapses. Admission control, criticality tiers, and retry budgets decide what breaks and what survives.
Leader election, log replication, and the quorum-overlap trick that makes Raft safe. What etcd, Consul, and Kafka KRaft are actually doing under the hood.
How the D365 F&O Feature management workspace works, what feature states mean for ALM, and how to ship your own X++ features behind flags.
How Power Automate retry policies work, which errors they cover, how to configure them, and how to keep retries from duplicating side effects.
Why dual writes lose events, how the transactional outbox pattern fixes it, and the relay, ordering, and cleanup decisions that make it production-ready.
Shipping code and releasing a feature are different events that most teams accidentally fuse together. Feature flags split them โ and unlock trunk-based development, safe rollouts, and instant rollback.
Shipping LLM features on vibes works until a prompt tweak silently breaks ten other cases. Here is how to build evals that catch regressions before your users do.
Asking a model to 'return JSON' and parsing the result is how you get 3 a.m. pages. Tool schemas, constrained decoding, and validation turn a probabilistic text generator into a reliable API.
Data entities look like simple tables until you need a nested import, a derived column, or a field with no storage. Knowing the three advanced shapes is what makes integrations actually work.
Most RAG systems that retrieve bad context aren't failing at embeddings or reranking โ they're failing at chunking. How you split documents quietly decides what your model can ever find.
A fast producer and a slow consumer is a recipe for an out-of-memory crash. Backpressure is the discipline of letting the slow part tell the fast part to wait. Here is how to design it in.
More connections is not more throughput. Past a point, adding connections makes your database slower. Here is how pools actually work and how to size one without guessing.
Collections feel fast and convenient, so makers overuse them โ and ship apps that lose data and break on refresh. Here is when to hold data in memory and when it belongs in Dataverse.
How does a database survive a power cut mid-write without corrupting your data? The answer is a deceptively simple rule: log the change before you apply it. Here is why WAL is everywhere.
A Bloom filter answers 'have I seen this?' using a tiny fraction of the memory a real set would need. The price is false positives โ and understanding that trade is the whole skill.
Transient failures are normal in any flow that calls an API. The difference between a flow that self-heals and one that pages you at 2 a.m. is how you handle retries and the failures that stick.
A single ACID transaction can't span order, payment, and inventory services. Sagas chain local transactions with compensating actions to keep distributed state consistent โ eventually.
Add fields, computed columns, and validation to standard D365 Finance & Operations data entities the upgrade-safe way โ with X++ examples and the staging-table traps to avoid.
The like button that responds before the server confirms feels instant. The trick is updating the UI first and reconciling later โ and handling the rollback so you never mislead the user.
When to use Chain of Command and when to use pre/post event handlers in Dynamics 365 Finance & Operations โ with X++ examples, a decision table, and the gotchas that trip up teams.
When a downstream service slows down, naive retries turn one sick dependency into a system-wide outage. A circuit breaker fails fast, sheds load, and gives the dependency room to recover.
A synchronous plug-in runs inside the user's transaction with a hard time limit. One slow query or external call can break saves for everyone. Here is how to keep plug-ins fast and safe.
A practical guide to the Electronic Reporting (ER) framework in D365 Finance โ data models, model mappings, and format configurations to produce custom files without X++.
You wrote to the database and then published an event โ and the publish failed. Now your systems disagree. The outbox pattern makes the write and the event atomic without a two-phase commit.
A search box that fires a request on every keystroke, a scroll handler running 60 times a second โ these are debounce and throttle problems. The concepts are simple; React makes them subtly tricky.
Default dimensions, ledger dimensions, account structures, and the DimensionAttributeValueCombination table explained โ with X++ patterns for reading and building dimensions in D365 Finance.
When you add a node to a sharded cache, naive hashing remaps almost every key. Consistent hashing moves only a fraction. Here is the mechanism, the virtual-node fix, and the traps.
Native N:N relationships are quick to set up and impossible to extend. A manual junction table is more work and far more flexible. Choosing wrong means a painful migration later.
How the number sequence framework works in D365 Finance & Operations โ continuous vs non-continuous, preallocation, cleanup, and X++ patterns for generating numbers on custom tables.
How the role-based security model in D365 Finance & Operations actually works โ privileges, duties, roles, segregation of duties, and how to extend security without overlayering.
Move files in and out of D365 Finance & Operations reliably using the recurring integrations REST API โ enqueue, dequeue, acknowledge, and the status polling patterns that keep data flowing.
How to build extensible data security policies in D365 Finance & Operations to filter records by user context โ with a worked example, query constructs, and the performance pitfalls to avoid.
Practical D365 Finance and Operations LCS guide for environment tiers, database refreshes, bacpac exports, restores, and sandbox governance.
Practical D365 F&O X++ event handler guide for table CRUD events, form data source events, ordering caveats, and when to use CoC.
Build and deploy D365 Finance and Operations packages with Azure DevOps, hosted build pipelines, LCS Asset Library, and release safeguards.
Design resilient D365 Finance and Operations OData integrations with 429 handling, Retry-After, batching, backoff, jitter, and DMF fallbacks.
Step-by-step D365 Finance and Operations workflow framework guide covering categories, types, approvals, event handlers, and submit code.
Clear X++ guide to TempDB vs InMemory temporary tables in D365 F&O, with joins, indexes, set-based operations, and performance tradeoffs.
Compare dual-write, virtual entities, OData, and DMF for Finance and Operations to Dataverse integration with latency and failure tradeoffs.
Learn when to use Dataverse low-code plug-ins with Power Fx for transactional server-side logic, and when C# plug-ins or flows still win.
Build a first Dataverse C# plug-in with IPlugin, pipeline stages, Target handling, tracing, registration, and production-safe practices.
A practical Dataverse logic placement guide comparing business rules, Power Fx, JavaScript form scripts, and C# plug-ins for scale.
Configure Copilot in Dynamics 365 Sales with practical guidance on summaries, email drafting, meeting prep, data readiness, and governance.
Design scalable model-driven app forms with tabs, sections, quick views, business rules, form scripts, security, and performance patterns.
Use Dataverse alternate keys and Web API upsert to build idempotent integrations that match business identifiers, avoid duplicates, and simplify retries.
Compare Dataverse calculated, rollup, and formula columns with practical examples, platform limits, timing tradeoffs, and when plug-ins are safer.
Secure Power Pages data with Dataverse table permissions, access scopes, web roles, column profiles, and testing practices that prevent data leaks.
Configure Dynamics 365 Customer Service SLAs, KPI timers, business hours, pause rules, Power Automate actions, and entitlements without surprises.
Choose OData or FetchXML for Dataverse Web API queries with practical examples for select, filter, joins, aggregation, paging, and performance.
Choose between canvas apps, model-driven apps, and Power Pages using a practical matrix for UX, data, licensing, governance, and audience fit.
Learn how Power Apps delegation works, why blue warnings matter, and the Dataverse patterns that keep large-table queries accurate and fast.
Build a first Power Apps PCF control with the CLI, manifest, TypeScript lifecycle, local testing, solution packaging, and safe deployment steps.
Design offline-capable Power Apps for field teams using canvas app caching, queue-and-sync patterns, conflict handling, and mobile offline profiles.
Use Power Fx named formulas and With to replace noisy OnStart logic, reduce repeated lookups, and make canvas apps faster and easier to maintain.
Design a Power Platform environment strategy with dev, test, prod, managed solutions, pipelines, DLP, routing, and governance that scales for teams.
Practical guide to Power Platform DLP policies, connector groups, environment scope, custom connectors, endpoint rules, and flow breakage diagnosis.
Understand Managed Environments in Power Platform, including governance features, licensing, security controls, insights, trade-offs, and rollout timing.
Build a first Copilot Studio agent with topics, generative answers, actions, authentication, testing, publishing, and Teams or website channels.
Embed Power BI content in canvas apps, pass app selections into report filters, read Power BI selections back, and handle licensing and performance.
Learn responsive canvas app layout with horizontal and vertical containers, flexible sizing, breakpoints, scaling settings, accessibility, and tab order.
Memorize these Power Automate expressions to build faster flows, handle nulls, shape arrays, format dates, reduce action count, and debug WDL.
Learn when to call the Dataverse Web API from Power Automate for actions, functions, batch requests, impersonation, row association, and binds.
Use child flows in Power Automate to centralize reusable logic, pass typed inputs and outputs, handle errors, reduce duplication, and improve ALM.
Speed up Power Automate Apply to each loops with concurrency, Filter array, Select, OData filters, pagination strategy, lower action counts, and safer runs.
Master Power Automate Parse JSON with generated schemas, nullable fields, required properties, arrays, nested access, and practical error fixes.
Build your first Power Automate Desktop RPA bot with selectors, variables, loops, Excel data, cloud triggers, licensing, and reliable handoffs.
Use Power Automate trigger conditions to prevent noisy runs, save quota, filter SharePoint changes, skip system updates, and debug triggers.
Implement try-catch-finally error handling in Power Automate using Scopes, run-after settings, result outputs, retries, alerts, and Terminate.
Speed up bulk SharePoint creates and updates in Power Automate by calling the $batch API with changesets, chunking, and per-item error handling.
Create Teams adaptive cards from Power Automate, collect inputs, capture responders, update cards, validate replies, and choose cards wisely.
Use connection references and environment variables to make Power Automate solution deployments predictable across dev, test, and production.
Learn how Power Automate pagination, thresholds, filters, and batching keep large Dataverse and SharePoint datasets reliable.
Secure Power Automate secrets with Azure Key Vault, secure inputs and outputs, least privilege, rotation, and safer ALM patterns.
How to expose Dynamics 365 Finance and Operations to Claude through MCP โ the architecture, the data entity choices, the auth model, and the operations that should never be one prompt away.
A practical guide to the design decisions that determine whether an event-driven system stays maintainable or quietly rots โ delivery guarantees, ordering, idempotency, schema evolution, and the outbox.
Build resilient Power Automate integrations with Azure Service Bus queues, topics, sessions, duplicate detection, and dead-letter handling.
An introduction to the Model Context Protocol and how the Dataverse MCP server lets Claude read and write business data through natural language.
A hands-on example of using the Dataverse MCP server with Claude to query tables, create records, and update data in Dynamics 365 through natural language.
Use Claude Code hooks to enforce policy at the moment actions happen โ before edits, before tool calls, on session start โ without relying on pre-commit hooks everyone learns to bypass.
From zero to a working Model Context Protocol server in about 100 lines โ tools, resources, a local client test, and the traps that will bite you on day one.
A precise look at Claude's prompt caching โ how the cache hit math actually works, the 5-minute and 1-hour TTL variants, and the subtle mistakes that silently disable it.
A practical walkthrough of Snowflake's four security layers โ role hierarchy, column-level masking policies, row access policies, and environment isolation โ with real SQL examples.
The tool-use features of the Claude API look straightforward in the docs. These are the production patterns that separate a demo from a system that handles real traffic โ parallel tool calls, retry loops, error recovery, and tool_choice tactics.
The Claude Agent SDK is the fastest path to a capable coding-style agent. The raw messages API is the fastest path to understanding what your agent is doing. Here's when each is the right tool.
A practical guide to the features that changed how we build React apps โ Server Components, the new compiler, and the patterns that stuck.
A practical comparison of the vector databases people actually deploy in 2026 โ and an honest look at when a vector database is the wrong tool for the job.
Idempotency keys are what separate a payment system that double-charges during a retry from one that doesn't. The mechanism looks simple and has five subtle failure modes you need to know about.
Three patterns for multi-tenant data isolation in SaaS, the trade-offs between cost, blast radius, and compliance, and a migration path from one to another when you outgrow your first choice.
A hands-on tutorial for creating custom Copilot plugins in Dynamics 365 Sales โ from defining a custom API to registering a plugin that Copilot can invoke, with real examples and permission gotchas.
A practical breakdown of the Sales Qualification Agent, Case Management Agent, and the governance framework you need before deploying them.
A step-by-step guide to building a live-updating dashboard using Next.js API routes, Server-Sent Events, and Supabase Realtime โ with reconnection handling and smooth UI transitions.
How the Accounting Rules Engine, multi-entity journals, flexible hierarchies, and Copilot in D365 Finance 10.0.46+ transform period close for multi-company environments.
Set up automated tests for your canvas apps using Power Apps Test Engine โ from first test case to CI/CD pipeline integration.
A field-tested guide to dual-write configuration between D365 Finance & Operations and Dataverse โ covering initial sync failures, conflict resolution, performance tuning, and when to use alternatives like virtual entities or data export service.
Most alerting setups produce noise that teams learn to ignore. Here is how to design alerts around the four golden signals, set thresholds that mean something, and build a system where every alert is worth waking someone up for.
A detailed comparison of Azure Functions and Azure Container Apps โ pricing, cold starts, scaling, runtime support, and a decision flowchart for picking the right one.
How to build a deployment pipeline that swaps staging and production slots on Azure App Service โ with smoke tests, warm-up, rollback strategy, and a real YAML pipeline you can steal.
ARM templates are painful. Bicep fixes the developer experience with cleaner syntax, modules, and first-class Azure CLI integration. Here is how to migrate and start using it in your CI/CD pipelines.
Why every public API needs rate limiting, the four main algorithms compared, implementation in Next.js with Redis, proper HTTP headers, and Azure API Management policies.
A practical comparison of session-based auth, JWT auth, and OAuth 2.0 / OIDC โ how each works, when to use them, security pitfalls, and recommended patterns for SPAs, server apps, and mobile.
A clear-eyed look at Command Query Responsibility Segregation โ what it actually is, how to implement it in .NET, when it pays off, and when it's unnecessary complexity.
How to diagnose and fix slow X++ queries in D365 Finance & Operations using Trace Parser, execution plans, proper index design, join selection, and set-based operations โ with real before/after examples.
How to use virtual entities in D365 Finance & Operations to surface external data from APIs and databases without importing, syncing, or paying the ETL tax โ with a real-world supplier data example.
Stop copying .ps1 files into shared folders. Learn how to package PowerShell scripts into proper modules with versioning, publish them to a private feed, and distribute them to your team like a professional.
A practical guide to data migration using the Data Management Framework in D365 Finance & Operations โ covering entity selection, staging tables, transformation patterns, error handling, and performance tuning from real enterprise migrations.
Concrete, measurable patterns to speed up slow Power Apps canvas apps โ with before/after examples for each optimization.
Advanced Power Fx patterns that separate beginners from power users โ With, Sequence, ParseJSON, error handling, regex, and more.
Build a full round-trip integration between Power Automate and D365 Finance & Operations โ trigger on business events, transform data, and write back via OData.
How to use Chain of Responsibility (CoR) to extend standard X++ classes in D365 Finance & Operations โ with code samples for wrapping methods, accessing protected members, and avoiding common pitfalls.
How to build, activate, and consume Business Events and Data Events in Dynamics 365 Finance & Operations with X++ code samples and integration patterns.
How Dataverse security roles actually work, common mistakes that leave data exposed, and the layered model you should be using in 2026.
How to build batch jobs using the SysOperation framework in D365 Finance & Operations โ contract, controller, and service classes with X++ code samples.
Go beyond basic approvals โ build a multi-level approval chain with rich Adaptive Cards, timeout handling, escalation logic, and full audit trails in Power Automate.
Build a custom connector from an OpenAPI spec, configure authentication, handle pagination, and share it across your organization โ step by step.
Build resilient flows with scope-based try-catch-finally patterns, configure run after, and structured error logging in 2026.
A step-by-step guide to diagnosing and resolving NuGet package source errors in Visual Studio and dotnet CLI.
Reliable techniques for detecting empty date fields in Dataverse and SharePoint connectors within Power Automate flows.
How to use environment variables, connection references, and solution-aware configuration for clean ALM in Power Platform.
How to distinguish between create and update operations in Dataverse-triggered flows and implement conditional logic accordingly.
Three practical techniques for deduplicating array data in Power Automate, from simple expressions to XPath tricks.
Practical expressions and defensive patterns to prevent null field errors from crashing your Power Automate flows at runtime.
How to resolve execution policy errors when running .ps1 scripts, and why you should care about script signing in 2026.