Bỏ qua để đến nội dung

Nếu hôm nay bạn không lưu trữ…

Cũng có bằng 19 ngôn ngữ khác

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · ไทย · Українська · Español (México) · Français (Canada) · Deutsch (Schweiz)

A records room seen down its length: files in use in front, rows of archive boxes behind, and a shredder with a full bin at the far end.
Hình ảnh được tạo bằng AI

Mô-đun 4 trong 4 của chương Thiết kế cho quy mô lớn, chương 7 của khóa học Data Architect. Mỗi mô-đun có thể đọc độc lập. Trước: Khối lượng gặp mô hình chia sẻ · Tiếp theo: chương sau, Kiến trúc truy vấn và truy xuất

Câu hỏi mô-đun này trả lời: Lên kế hoạch lưu trữ và xóa bỏ dữ liệu thế nào?

When somebody tells me “we’ll archive the old records later,” I ask one question: if you’re not archiving today, are you ever going to archive? “Later” often becomes after the next release, after the migration, after the reorganization, after we fix performance, after we run out of storage. Then five years on, someone finally asks why there are 80 million records in this object. I don’t want to discover archiving after large data volume has become the problem. If I know the data will grow, I decide its lifecycle when I design it. Salesforce’s own guide says the same: “if your volume of data is increasing, performance can degrade as time goes by. A policy of archiving or discarding data at the same rate at which it comes into the system can prevent this effect” (Best Practices for Deployments with Large Data Volumes (mở trong thẻ mới), Winter ‘27). ⟲

Chúng ta đã hỏi một bản ghi được tạo thế nào, ai sở hữu nó, ai được thay đổi nó, cái gì có thẩm quyền. Giờ thêm một câu nữa: nó rời đi thế nào? Một bản ghi có thể đi từ đang hoạt động sang không hoạt động, sang được lưu trữ, rồi bị xóa bỏ. Không phải bản ghi nào cũng cần mọi giai đoạn, nhưng mọi đối tượng khối lượng lớn đều cần một vòng đời. Một chuyến giao hàng của Steve Trucking được cần đến liên tục khi nó đang diễn ra: bởi tổ giao hàng, điều phối viên, bộ phận chăm sóc khách hàng, đối tác, tự động hóa. Một tuần sau khi hoàn tất, nó vẫn hữu ích. Sáu tháng sau, nó chủ yếu là lịch sử dịch vụ. Ba năm sau, chủ yếu cho phân tích, kiểm toán hoặc thỉnh thoảng một vụ tranh chấp. Mười năm sau, có thể chẳng ai còn lý do chính đáng để giữ nó. Giá trị của dữ liệu thay đổi theo thời gian; kiến trúc nên thay đổi theo.

Xóa là điều không tránh khỏi, nên hãy quyết định ngay từ ngày đầu

Phần tiêu đề “Xóa là điều không tránh khỏi, nên hãy quyết định ngay từ ngày đầu ”

Rồi sẽ có ngày bạn cần xóa dữ liệu. Vì vậy tôi muốn các chính sách lưu giữ và xóa bỏ được đặt ra ngay từ đầu dự án, không phải khi dung lượng lưu trữ trở nên đắt đỏ. Việc lưu giữ được quyết định bởi yêu cầu nghiệp vụ và pháp lý: nó phải ở trạng thái vận hành bao lâu, chúng ta phải giữ nó bao lâu, vì sao, ai có thể cần đến nó, họ phải lấy được nó nhanh đến đâu, cuối cùng nó có thể bị xóa không, và quyền riêng tư có nói rằng nó nên bị xóa sớm hơn không? Chương 5 đã cho thấy giữ mọi thứ mãi mãi không tự động an toàn hơn; đôi khi giữ dữ liệu lâu hơn mới chính là rủi ro.

Hãy tách ba quyết định. Lưu giữ: chúng ta giữ nó bao lâu? Lưu trữ: chúng ta giữ những gì không còn thuộc về khối công việc đang hoạt động ở đâu, và thế nào? Xóa bỏ: khi nào và bằng cách nào nó bị gỡ bỏ vĩnh viễn? Cần bảy năm dữ liệu không có nghĩa là bảy năm ở trạng thái hoạt động. Có thể là mười tám tháng hoạt động, rồi được lưu trữ trong phần còn lại của thời hạn, rồi bị xóa bỏ. Giờ vòng đời đã rõ ràng.

Purging at volume has its own mechanics, and Salesforce spells them out. Deleting a record doesn’t remove it at once: it goes to the Recycle Bin for 15 days, and while it’s there it “still affects database performance because the data is still resident, and deleted records have to be excluded from any queries.” For a purge of a million records or more, Salesforce’s advice is the hard delete option of Bulk API 2.0, which skips the Recycle Bin, and when records have many children, to delete the children first (Deleting Data (mở trong thẻ mới); Best Practices: Deleting Data (mở trong thẻ mới)). A purge is a data operation like any other at scale: plan it, run it in batches, and check it. ⟲

Test knowledge. Know how to purge at volume: soft-deleted records stay in the Recycle Bin for 15 days and still slow queries; for a million records or more, use Bulk API 2.0 hard delete; delete children before parents. ⟲

Every record has a way out Every record has a way out, in four numbered stages. One, active, the operational work: it lives in the core org, and the operational window ends it, for example after 18 months. Two, inactive, occasional service: still in the core org, read and rarely changed, until the archive run. Three, archived and still findable: in big objects, through Salesforce Connect or in Archive, and found from Salesforce, until the retention requirement ends, for example 7 years in all. Four, purged, gone for good: it lives nowhere; permanent deletion is set on day one, with backups in place first. Underneath: retain for seven years doesn't mean keep active for seven years. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.34.0", "built": "2026-10-20", "id": "DGM-DA-LDV-41", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "comparison 0.4.0", "theme": "stevetecharc 1.4.0"} 1 Active the operational work LIVES In the core org ENDS BY The operational window e.g. 18 months 2 Inactive occasional service LIVES Still in the core org Read, rarely changed ENDS BY The archive run 3 Archived and still findable LIVES Big objects, Salesforce Connect or Archive Found from Salesforce ENDS BY The retention requirement e.g. 7 years in all 4 Purged gone for good LIVES Nowhere DECIDED BY Permanent deletion, set on day one Backups in place first Retain for seven years doesn't mean keep active for seven years. © 2026 Twinshark LLC · stevetecharc.com
Nhấp để phóng to

Retain for seven years doesn’t mean keep active for seven years. ⟲

Lưu trữ rốt cuộc có nghĩa là gỡ bản ghi khỏi hệ thống đang hoạt động, nên trước khi thiết kế việc xóa, tôi muốn có câu chuyện khôi phục: chúng ta có khôi phục được không, nhanh đến đâu, chúng ta có biết chính xác cái gì đã mất không, có khôi phục được các mối quan hệ không, chúng ta đã kiểm thử chưa? Sao lưu phải có trước khi bất cứ thứ gì bị xóa. Sao lưu và lưu trữ là hai năng lực khác nhau: sao lưu bảo vệ khỏi mất mát; lưu trữ cố ý đưa dữ liệu ra khỏi tập dữ liệu đang hoạt động trong khi vẫn giữ quyền truy cập mà doanh nghiệp còn cần. Xóa nhầm mười bản ghi thì phiền. Xóa nhầm mười triệu là một sự cố. Số chữ số 0 cũng áp dụng cho sai lầm.

Giờ cả hai đều đến từ chính Salesforce. Own, công ty đứng sau OwnBackup, là một phần của Salesforce Platform: Own Recover giờ là Salesforce Backup & Recover (sao lưu dữ liệu và siêu dữ liệu hằng ngày và theo yêu cầu, khôi phục ở cấp trường, bản ghi hoặc đối tượng, khôi phục về một thời điểm), còn Archive chuyển dữ liệu ít dùng sang kho lưu trữ chi phí thấp trong khi vẫn truy cập được từ bên trong Salesforce, theo các chính sách lưu trữ và lưu giữ (Own From Salesforce Product Suite FAQ (mở trong thẻ mới); Own’s tools, now part of Salesforce (mở trong thẻ mới)).

Một kho lưu trữ không ai tìm được gần như là đã xóa

Phần tiêu đề “Một kho lưu trữ không ai tìm được gần như là đã xóa ”

Một đội chuyển dữ liệu cũ sang nơi rẻ hơn. Lưu trữ xong. Rồi một khách hàng gọi đến: “Tôi có một chuyến giao hàng bốn năm trước và tôi cần bằng chứng giao hàng.” Nhân viên hỗ trợ tìm trong Salesforce: không có gì. Giờ họ cần một hệ thống khác, đúng bảng, một mã định danh, một quản trị viên, một yêu cầu, hai ngày. Đó không phải là một kho lưu trữ tử tế. Dữ liệu đã lưu trữ không cần hoạt động như dữ liệu đang hoạt động. Nó có thể chậm hơn, chỉ đọc, hiển thị trong một thành phần khác. Nhưng dữ liệu đã lưu trữ phải tìm được, theo yêu cầu của doanh nghiệp.

I’ve seen this done well at a service chain. At the very beginning of the project they told me, “We only do a hundred appointments a day at a store.” A hundred, no big deal. But they had a thousand stores, open six days a week. Do the quick math: that’s about 31 million appointments a year. Then they created two appointment records for every visit, one at the front office and one at the back, so 62 million. And they needed five years: over 300 million records. I could see large data volume coming before we’d even gone live. So right from the beginning we said: there has to be archiving before we collect a single appointment. We put the archive in big objects and built it in from the ground up. When a user searched a customer, the live appointments came first, and below them, the archived ones. The archive didn’t pretend to be active data, and nobody had to become a database administrator to find history. Active data where the operational system needs it; archived data somewhere suited to its volume; a path from the business context to both. Much better than either extreme: everything active forever, or moved somewhere nobody can find. ⟲

Keeping data in core is like keeping it at the front of the office, where it’s in the way of today’s work. Somewhere in the future of any object with tens of millions of records there’s a move to the back: a box in an archive, the shed (big objects), or a hologram (virtualization, the data shown in Salesforce but living elsewhere). There’s no single answer; I choose the destination by constraint. When the customer doesn’t want an external store, I’ve used big objects: on-platform, built for very large volumes, but with no standard UI or reporting, Apex-only access and querying through the index, so plan the access path before you choose them (chapter 3’s “shed out back”). Plan the storage too: most editions are allocated storage for 1 million big object records per org, and more has to be arranged with Salesforce (Data and File Storage Allocations (mở trong thẻ mới)). Two more facts matter for an archive. Big objects support only object and field permissions, not sharing rules, and triggers and flows don’t run on them. And inserting an identical record twice creates only one, so writes can be idempotent, which helps when an archive run has to restart (Big Objects (mở trong thẻ mới)). ⟲

An archive in a big object Two zones, Inside Salesforce and Outside Salesforce, with a dashed boundary between them. Inside, a Work Order (WorkOrder, active) has an arrow labelled archive job to a Work Order Archive, a big object (__b), also inside Salesforce. Below, an Archive viewer, a Lightning web component, has an arrow labelled reads through Apex to the Work Order Archive. The outside zone is empty. Underneath: it stays inside Salesforce, but with no standard page: users see it through a component that reads it with Apex; no sharing rules, triggers or flows. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.36.0", "built": "2026-10-20", "id": "DGM-DA-LDV-44", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "boundary 0.1.0", "theme": "stevetecharc 1.4.0"} INSIDE SALESFORCE OUTSIDE SALESFORCE Work Order WorkOrder, active Work Order Archive big object (__b) Archive viewer Lightning web component archive job reads through Apex Stays inside Salesforce, but with no standard page: users see it through a component that reads it with Apex. No sharing rules, triggers or flows. © 2026 Twinshark LLC · stevetecharc.com
Nhấp để phóng to

A big object: the archive stays inside Salesforce, and you build the window users see it through. ⟲

When an external store is fine, I’ve used an off-platform database surfaced through Salesforce Connect, so archived records appear in Salesforce without being copied back. Precisely: Salesforce Connect reaches external data through OData services, other Salesforce orgs, a custom adapter built with the Apex Connector Framework, or specific adapters for Amazon DynamoDB, GraphQL and SQL (the SQL adapter supports Snowflake and Amazon Athena), so a general database usually needs an OData layer or a custom adapter in front of it (Choose Which Salesforce Connect Adapter to Use (mở trong thẻ mới)). ⟲

An archive outside, through Salesforce Connect Two zones, Inside Salesforce and Outside Salesforce, with a dashed boundary between them. Inside, a Work Order (WorkOrder, active) has an arrow labelled archive job that crosses the boundary to an Archive database outside Salesforce (or other low-cost storage). Also inside, Archived Work Orders, an external object (__x), has an arrow labelled Salesforce Connect pointing to the same database. Underneath: the records live outside; Salesforce Connect shows them in Salesforce as an external object, read when someone asks, not copied back. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.36.0", "built": "2026-10-20", "id": "DGM-DA-LDV-45", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "boundary 0.1.0", "theme": "stevetecharc 1.4.0"} INSIDE SALESFORCE OUTSIDE SALESFORCE Work Order WorkOrder, active Archived Work Orders external object (__x) Archive database or other low-cost storage archive job Salesforce Connect The records live outside. Salesforce Connect shows them in Salesforce as an external object, read when someone asks, not copied back. © 2026 Twinshark LLC · stevetecharc.com
Nhấp để phóng to

An external store: the archive leaves Salesforce, and Salesforce Connect brings it back into view. ⟲

The archive doesn’t have to be a database. It can be files in low-cost file storage, such as Amazon S3, and Salesforce Connect’s SQL adapter for Amazon Athena lets users “analyze data directly in Amazon Simple Storage Service (Amazon S3)” from Salesforce. One catch for an archive: that adapter is available “not for high-data-volume external objects,” so check what your volume needs before you choose it (Salesforce Connect SQL Adapter for Amazon Athena (mở trong thẻ mới)). ⟲

An archive in file storage, through Salesforce Connect Two zones, Inside Salesforce and Outside Salesforce, with a dashed boundary between them. Inside, a Work Order (WorkOrder, active) has an arrow labelled archive job that crosses the boundary to File storage outside Salesforce, such as Amazon S3. Also inside, Archived Work Orders, an external object (__x), has an arrow labelled Salesforce Connect (Amazon Athena) pointing to the same file storage. Underneath: the records live as files outside; Salesforce Connect's Amazon Athena adapter queries them where they sit and shows them in Salesforce as an external object. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.36.0", "built": "2026-10-20", "id": "DGM-DA-LDV-46", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "boundary 0.1.0", "theme": "stevetecharc 1.4.0"} INSIDE SALESFORCE OUTSIDE SALESFORCE Work Order WorkOrder, active Archived Work Orders external object (__x) File storage such as Amazon S3 archive job Salesforce Connect (Amazon Athena) The records live as files outside. Salesforce Connect's Amazon Athena adapter queries them where they sit and shows them in Salesforce as an external object. © 2026 Twinshark LLC · stevetecharc.com
Nhấp để phóng to

File storage: the same move, with files in place of a database. ⟲

And now Salesforce’s Archive is the built-in option, keeping archived records reachable from Salesforce. Third-party tools such as GRAX are in the market too. ⟲

Test knowledge. Know the archive destinations and what big objects are: built for very large volumes (consistent performance from a million records to a billion); reached through Apex, APIs and their index, not the standard UI; object and field permissions only, no sharing rules; no triggers or flows. Know the alternatives: an external store through Salesforce Connect, and Salesforce’s Archive. ⟲

Sản phẩm không phải là bài học. Các đặc điểm mới là: bao nhiêu dữ liệu, được truy xuất thường xuyên đến đâu, phải hiện ra nhanh thế nào, có cần truy cập quan hệ không, người dùng có phải tìm thấy nó từ Salesforce không, nó có thể chỉ đọc không, ai được thấy nó, nó được giữ bao lâu, nó tốn bao nhiêu, và cuối cùng nó sẽ được xóa bỏ thế nào. Những câu trả lời đó chọn công nghệ. Và hãy nhớ: dữ liệu nằm ở đâu về mặt vật lý và người dùng có thể tìm thấy nó ở đâu là hai câu hỏi khác nhau. Chuyến giao hàng năm năm tuổi không thuộc về đối tượng đang hoạt động. Điều đó không có nghĩa là nhân viên chăm sóc khách hàng không thể tìm thấy nó.

When I’m moving large volumes out of an operational system, I don’t like copy, then delete in one step. There’s too much trust in it. And before the first real run, I rehearse it: a dry run that shows which records would move, ideally in a full copy sandbox, deleting nothing. Salesforce’s Archive app lets you preview an archive policy before you publish it (Archive App (mở trong thẻ mới)), and other archiving tools offer a dry-run mode for the same reason. Then I use three steps: ⟲

  1. Copy and flag. Copy the records to the archive and mark them in the source as pending archive. Don’t delete anything yet. Now both copies exist. On the service chain, this was a batch that ran on the weekend. ⟲
  2. Verify. Re-query the source and the archive and prove the archive is right: counts, identifiers, relationships, totals or other reconciliation; can we retrieve them? For extra assurance, add checksums, or restore a sample back and compare it. Then flag them as validated. Trust but verify. Users still find the records in the source, because they aren’t archived yet. ⟲
  3. Delete and flip. Only after verification, and only for records that aren’t under a legal hold, delete the active records and mark the archive complete, so the search screens now pull them from the archive. The deletion doesn’t have to follow at once; it could happen a week later. ⟲

What could go wrong with one pass, copy and delete? It didn’t copy, and you’ve deleted the records. The point is that you don’t cross the destructive boundary until you’ve proved the copy. And with the states, you can report on every archive run. ⟲

This isn’t just my habit; it’s how the serious archiving tools work. Oracle’s archive and purge, for example, validates the records, copies them to archive tables, and then purges from what it archived, with a restart program for when a run fails partway (Archive and Purge (mở trong thẻ mới)). Tools that copy and delete in a single pass come with a warning to test with a dry run first (AWS Prescriptive Guidance: Archiving data from unpartitioned tables (mở trong thẻ mới)). Salesforce’s Archive app respects legal holds: records under a legal hold can’t be deleted or removed (Archive App). ⟲

Copy, verify, then delete and flip Copy, verify, then delete and flip, in three lanes: people searching (care agents and the search screen), the Salesforce objects holding the active records, and the big object archive, the shed. Steps 1 and 2, copy: the records are copied from Salesforce to the archive in a weekend batch, and flagged in Salesforce as pending archive. Steps 3 to 6, verify: the source is re-queried, the archive is re-queried, the counts and IDs match, and the records are flagged validated; a search still finds them in the source. Step 7, delete and flip, maybe a week later; step 8, a search now finds them in the archive. Underneath: the destructive boundary is step 7; every state is recorded, so a failed run restarts where it stopped. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.34.0", "built": "2026-10-20", "id": "DGM-DA-LDV-42", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "system-landscape/lanes 0.11.0", "theme": "stevetecharc 1.4.0"} COPY, VERIFY, THEN DELETE AND FLIP People searching care agents, the search screen Salesforce objects Big object archive the shed copy, in a weekend batch 1 flag: pending archive 2 verify: re-query the source 3 re-query the archive; counts and IDs match 4 flag: validated 5 search: still found in the source 6 delete and flip, maybe a week later 7 search: found in the archive 8 Copy (1-2), verify (3-6), delete and flip (7). The destructive boundary is step 7. Every state is recorded, so a failed run restarts where it stopped. © 2026 Twinshark LLC · stevetecharc.com
Nhấp để phóng to

Don’t cross the destructive boundary until you’ve proved the copy. ⟲

Và hãy thiết kế để có thể chạy lại. Lưu trữ 20 triệu bản ghi, tác vụ thất bại ở bản ghi 14.382.711. Nếu câu trả lời là “bắt đầu lại từ đầu”, tôi không thích thiết kế đó. Các thao tác lớn sẽ thất bại: kết nối rớt, tác vụ hết thời gian chờ, một bản ghi kỳ quặc gây lỗi. Quy trình phải biết những gì đã thành công, đó là mục đích của các trạng thái lưu trữ (đang chờ, đã xác minh, đã lưu trữ, thất bại), để nó có thể chạy lại mà không nhân đôi dữ liệu, mất dữ liệu, hay xóa thứ chưa được lưu trữ an toàn. Ở quy mô lớn, khả năng chạy lại là một phần của độ tin cậy.

One more thing to know before you call a purge done: deleting the active records isn’t the same as erasing the data. Backups, caches, replicas and analytics copies may still hold it. That’s fine for an archive, and it’s exactly what chapter 5 asks you to account for when privacy law says the data must go. ⟲

Lưu trữ có thể trở thành cái cớ để né quyết định xóa. “Biết đâu có ngày chúng ta cần.” Có thể không. Chương 5 hỏi chúng ta có được phép giữ nó không? Chương này thêm giữ nó ở trạng thái hoạt động có giá trị gì không? Một số bản ghi chuyển sang kho lưu trữ; một số được tóm tắt, một số được ẩn danh hóa, một số bị xóa. Mục tiêu không phải là bảo toàn từng byte. Mà là giữ những gì doanh nghiệp thực sự cần, trong khoảng thời gian thực sự cần.

Unstructured data is a different scale problem. Steve Trucking expects four to five million photos a year. Purely for magnitude, at about 4 MB a photo, five million is about 20 TB in one year, before growth. The real size will vary; the zeros tell you the binary content needs its own architecture. That’s why Checkpoint 1 separated the business record about a photo from the photo itself. Salesforce may need the photo’s type, its delivery, when and by whom it was taken, where it’s stored and its retention state, or even just a count and a “required photos complete” flag. The image belongs in storage built for millions of large objects. It’s the same principle as FleetLink’s GPS: keep in core what the operational process needs, and don’t copy every high-volume artifact into core because Salesforce takes part in the process. ⟲

Data leaving the active object doesn’t leave its security requirements behind. Redrock saw only Redrock’s deliveries while they were active; archive them, and Redrock still doesn’t get Keystone’s history. The archive needs an authorization model too, for Recipient personal data, photos, financial data, service history and agent access. A big-object archive doesn’t help on its own here: big objects don’t support sharing rules, so the access path you build has to carry the partner boundary. One design question for every archive: how do the original security requirements survive the move? The implementation may change; the requirement doesn’t. ⟲

Một Người nhận hỏi một tác tử: “Tủ lạnh của tôi được giao đến đâu bốn năm trước?” Câu trả lời có tồn tại, nhưng đã được lưu trữ. Tác tử có nên với tới được nó không? Lập trường của tôi: đó là một quyết định quan trọng, và đó là quyết định của doanh nghiệp. Kiến trúc sư trình bày các lựa chọn và cái giá của từng lựa chọn: kho lưu trữ nào, tác tử với tới nó thế nào, độ trễ, mức tiêu thụ, tác tử được nói gì về dữ liệu cũ, và các giới hạn về lưu giữ và quyền riêng tư. Rồi doanh nghiệp quyết định. Nếu dữ liệu đã lưu trữ cần vẫn với tới được, hãy xây một đường truy xuất có ủy quyền. Nếu không, hãy để ranh giới của kho lưu trữ thực thi điều đó. Điều tôi không muốn là công nghệ vô tình đưa ra quyết định.

Ngoài kỳ thi: AI thay đổi điều gì. Lưu trữ giờ bao gồm cả một quyết định về ngữ cảnh: lịch sử có còn trong tầm với của tác tử hay không. Một kho lưu trữ không tự động trở thành một phần ngữ cảnh của tác tử chỉ vì dữ liệu vẫn còn tồn tại. Hãy đưa quyết định cho doanh nghiệp, rồi áp dụng cùng các quy tắc ủy quyền và lưu giữ như với quyền truy cập của con người.

Steve Trucking: Quyết định vòng đời trước khi cần đến

Phần tiêu đề “Steve Trucking: Quyết định vòng đời trước khi cần đến ”

Sau năm năm: khoảng 9 triệu lệnh công việc, 14,5 triệu mục dòng, hàng triệu bức ảnh, cùng lịch sử trạng thái và GPS mà chúng ta đã cố ý giữ ngoài lõi. Tôi không muốn Steve Trucking chờ đến năm thứ năm mới quyết định “cũ” nghĩa là gì. Các khoảng thời gian chính xác có thể chưa được đặt; không sao. Nhưng kiến trúc lẽ ra đã phải hỏi: một chuyến giao hàng đã hoàn tất ở trạng thái vận hành bao lâu? Nhân viên chăm sóc khách hàng phải thấy ngay những chi tiết nào? Khi nào lệnh công việc và các mục dòng của chúng chuyển sang kho lưu trữ, và chuyển đi đâu? Lịch sử nào thuộc về Snowflake? Ảnh cũ nằm ở đâu, và khi nào chúng bị xóa? Đối tác bán lẻ vẫn thấy những bản ghi đã lưu trữ nào? Tác tử có với tới được các chuyến giao hàng đã lưu trữ không? Đó không phải là câu hỏi dọn dẹp. Đó là câu hỏi kiến trúc.

Với mỗi đối tượng khối lượng lớn, tôi muốn năm câu trả lời. Khi nào nó thôi hoạt động? Nó đi đâu? Làm sao chúng ta chứng minh nó đã đến nơi? Sau đó người ta tìm nó thế nào? Khi nào nó cuối cùng bị xóa? Nếu bạn không trả lời được những câu đó, bạn không có chiến lược lưu trữ. Bạn chỉ có một niềm hy vọng.

The Archive Test The Archive Test, five questions for three Steve Trucking objects. When does it stop being active? The work order after the claims window; the line item with its work order; the proof-of-delivery photo after the claims window. Where does it go? The work order to an archive found from Salesforce; the line item with its work order; the photo stays in photo storage, in a colder tier. How do we prove it got there? Counts and IDs reconciled for the work order; counts per work order for the line items; a file count, and the link still opens, for the photo. How is it found afterward? Care agents search, with the archive below the live results; the line item from its work order; the photo from the archived work order. When is it finally deleted? The work order at the end of retention, on the partner's schedule; the line item with its work order; the photo at the end of retention, or sooner for images of people's homes. Underneath: if you can't answer all five, you don't have an archive strategy; you have a hope. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.34.0", "built": "2026-10-20", "id": "DGM-DA-LDV-43", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "system-landscape/inventory 0.11.0", "theme": "stevetecharc 1.4.0"} THE ARCHIVE TEST WORK ORDER LINE ITEM PROOF-OF-DELIVERY PHOTO When does it stop being active? After the claims window With its work order After the claims window Where does it go? An archive found from Salesforce With its work order Stays in photo storage, a colder tier How do we prove it got there? Counts and IDs, reconciled Counts per work order File count, and the link still opens How is it found afterward? Care agents search; archive below live From its work order From the archived work order When is it finally deleted? End of retention, on the partner's schedule With its work order End of retention, or sooner for people's homes If you can't answer all five, you don't have an archive strategy. You have a hope. © 2026 Twinshark LLC · stevetecharc.com
Nhấp để phóng to

Five answers, or you have a hope. ⟲

  • Vòng đời hoạt động, lưu trữ, lưu giữ và xóa bỏ của mọi đối tượng khối lượng lớn, được quyết định trước khi dung lượng lưu trữ hay hiệu năng ép buộc.
  • Sao lưu và khôi phục nào phải sẵn sàng trước bất kỳ đợt lưu trữ hay xóa bỏ mang tính phá hủy nào.
  • Dữ liệu đã lưu trữ nằm ở đâu (big object, một kho bên ngoài qua Salesforce Connect, Archive của Salesforce), dựa trên khối lượng, việc truy xuất, độ trễ, bảo mật, chi phí và việc xóa.
  • Các đợt lưu trữ được xác minh và làm cho có thể chạy lại thế nào trước khi bản ghi vượt qua ranh giới xóa.
  • Nội dung phi cấu trúc nào nằm ngoài lõi trong khi bản ghi nghiệp vụ của nó ở lại Salesforce, và dữ liệu đã lưu trữ có còn trong tầm với của tác tử hay không.

Chúng ta dành nhiều thời gian cho việc dữ liệu đi vào hệ thống thế nào: API, nhập dữ liệu, tích hợp, chuyển đổi, người dùng, tác tử. Hãy dành chừng ấy thời gian cho việc nó đi ra thế nào, vì dữ liệu chúng ta tạo hôm nay là bài toán khối lượng dữ liệu lớn của ngày mai. Việc lưu trữ có thể ba năm nữa mới bắt đầu. Vòng đời thì nên có ngay bây giờ. Thiết kế lối ra khi bạn thiết kế lối vào.