MemorySaver stores checkpoints in RAM, which is fast but ephemeral (lost on restart) and not shareable across processes. External stores like RedisSaver or PostgresSaver persist checkpoints to durable storage, enabling state recovery across server restarts, horizontal scaling, and shared conversation histories across multiple replicas.
The main differences are persistence, scalability, and sharing. MemorySaver is useful for development and testing because it is simple and fast, but all saved state is lost when the application stops. It cannot be shared across multiple instances of your application. External checkpoint savers (like RedisSaver, SqliteSaver, PostgresSaver) write checkpoint data to a persistent store, so state survives restarts. They are also designed for concurrency; multiple server instances can read and write to the same external store, allowing horizontal scaling of your agent and seamless user experience across requests. Additionally, external stores often provide features like backup, replication, and querying that are not available with in-memory storage.