Blogs
Notion logo

Notion

Engineering blog · notion.com/blog/topic/engineering

12posts1this week0watchers

Feature trails

6
Feature trailActive

Agent Shared Memory

Lore provides shared, persistent memory for AI agents, backed by Notion. It stores experiential knowledge, follow-up tasks, decision records, and procedures in structured Notion databases (Projects, Topics, Memories, Entities, Facts). Agents access Lore via MCP tools, and humans via Notion or a CLI. Memory quality is maintained through expiration and relational values, with benchmarks showing improved retrieval and model performance. The Custom Agents beta has seen over a million agents created. Data Scout connects governed data in Snowflake with company knowledge in Notion and connected sources such as Slack. Snowflake enforces data permissions, while Notion controls access to the agent and its tools and supplies the business context needed to understand each question. The system uses two agents and two databases to manage the content drift, with human review checkpoints before staging approved.

3 posts · 2026

Timeline

Feature trailActive

Notion Developer Platform

Notion's Developer Platform has been enhanced with new features including Custom Agents for deploying custom code to Notion's hosted runtime, enabling data synchronization and custom tools. This post details how Custom Agents are used to automate the content maintenance workflow for Notion Academy, comparing product changes against existing content and drafting updates. The system uses two agents and two databases to manage the content drift, with human review checkpoints before staging approved content to Parta via MCP.

4 posts · 2026

Timeline

Feature trailActive

Concurrent Text Editing with CRDTs

Notion has implemented a Conflict-free Replicated Data Type (CRDT) system, specifically based on Replicated Growable Array (RGA) and Peritext algorithms, to handle concurrent rich-text editing across its block-based document model. This system ensures that simultaneous edits from multiple users are merged deterministically without data loss, supporting complex operations like insertions, deletions, and rich text annotations (bold, italics, hyperlinks) with improved accuracy and intent preservation. The implementation also addresses challenges with text splitting and movement between blocks by introducing the concept of 'text slices' and 'text slice trees' to maintain data integrity across block boundaries.

1 post · 2026

Timeline

Feature trailActive

Search Index Reindexing

Notion's search index reindexing process has been significantly optimized. Previously a quarterly, multi-week event requiring constant monitoring and resulting in noticeable gaps, it now completes in under 24 hours with 100% document consistency and zero manual intervention. This was achieved by replacing a custom ECS-based indexing system with an Apache Spark-native pipeline, eliminating a secondary 'catchup' pipeline, and removing external dependencies from the indexing hot path. The new system now uses Spark to generate Elasticsearch native snapshot files directly, bypassing the live indexing API and reducing the operational tax of managing ECS workers.

1 post · 2026

Timeline

Feature trailActive

Dead-Letter Queue Explorer

Notion's DLQ Explorer provides engineers with a controlled, browser-based interface to inspect and recover failed tasks from the dead-letter queue. It leverages AWS Athena with partition projection over existing S3 buckets for querying, and a dedicated re-enqueue workflow with audit trails for recovery. This significantly reduces the time and complexity of investigating and resolving task failures. The Explorer now includes enhanced observability features, allowing for more granular filtering by cell, environment, event name, and error message, and provides detailed audit trails for re-enqueue operations, including who triggered it, when, and the justification provided. Investigations that once took around 20 minutes can now take under a minute.

1 post · 2026

Timeline

Feature trailActive

Multi-Region Data Systems

Notion has implemented multi-region data systems to support data residency requirements, particularly for EU customers. This involves separating data lakes, AI infrastructure, and event logging by region. Key architectural changes include modularizing infrastructure, using workspace ID as a routing identifier, and implementing region-specific Spark jobs, vector databases, and Kafka clusters. Centralized systems like Airflow orchestrate regional jobs, and mapping tables track workspace regions. Event logging now uses region-aware Cloudflare workers and Snowpipe streaming connectors for regional data sinks.

1 post · 2026

Timeline