You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Polecat supports Weasel ManagedTenantPartitions for the events table only (UseTenantPartitionedEvents, #163/#171, with per-tenant sequences via TenantEventSequenceRegistry). Marten's per-tenant partitioning goes further, and Polecat should reach full equivalence:
Gaps vs Marten today
Document tables: conjoined documents are tenant_id column + filter only. DocumentTable explicitly throws when partitioning is combined with conjoined tenancy ("RANGE partitioning of document tables is currently supported for single-tenant tables only"). Marten offers managed tenant partitioning on all conjoined document tables.
Streams table: Marten partitions mt_streams alongside mt_events under UseTenantPartitionedEvents; audit what pc_streams does and bring it in line.
Policy APIs: no equivalents of Marten's AllDocumentsAreMultiTenantedWithPartitioning(...) / PartitionMultiTenantedDocumentsUsingMartenManagement(...).
Runtime tenant onboarding: no equivalent of store.Advanced.AddMartenManagedTenantsAsync(...) / RemoveMartenManagedTenantsAsync(...) returning TablePartitionStatus[], nor the reserved default-tenant partition Marten auto-provisions for global projections.
Proposed scope
Lift the DocumentTable restriction: managed tenant partitioning for conjoined document tables (tenant_ordinal column + the store's shared ManagedTenantPartitions feature, one registry per database).
Partition the streams table to match the events table under UseTenantPartitionedEvents.
Policy-level API parity (naming TBD, mirroring Marten's shapes).
Runtime API parity: store.Advanced.AddPolecatManagedTenantsAsync(...) / Remove... with per-table status returns; reserved default-tenant partition if the Marten global-projection behavior applies.
Follow-up epic to the Wolverine conjoined EF Core multi-tenancy epic (JasperFx/wolverine#3465). Depends on the Weasel parity work in JasperFx/weasel#362.
Polecat supports Weasel
ManagedTenantPartitionsfor the events table only (UseTenantPartitionedEvents, #163/#171, with per-tenant sequences viaTenantEventSequenceRegistry). Marten's per-tenant partitioning goes further, and Polecat should reach full equivalence:Gaps vs Marten today
tenant_idcolumn + filter only.DocumentTableexplicitly throws when partitioning is combined with conjoined tenancy ("RANGE partitioning of document tables is currently supported for single-tenant tables only"). Marten offers managed tenant partitioning on all conjoined document tables.mt_streamsalongsidemt_eventsunderUseTenantPartitionedEvents; audit whatpc_streamsdoes and bring it in line.AllDocumentsAreMultiTenantedWithPartitioning(...)/PartitionMultiTenantedDocumentsUsingMartenManagement(...).store.Advanced.AddMartenManagedTenantsAsync(...)/RemoveMartenManagedTenantsAsync(...)returningTablePartitionStatus[], nor the reserved default-tenant partition Marten auto-provisions for global projections.Proposed scope
DocumentTablerestriction: managed tenant partitioning for conjoined document tables (tenant_ordinalcolumn + the store's sharedManagedTenantPartitionsfeature, one registry per database).UseTenantPartitionedEvents.store.Advanced.AddPolecatManagedTenantsAsync(...)/Remove...with per-table status returns; reserved default-tenant partition if the Marten global-projection behavior applies.MERGE RANGEdoes not remove the tenant's rows (see ManagedTenantPartitions (SQL Server) parity with ManagedListPartitions: drop semantics, bucketing, back-fill weasel#362 item 1).This epic is the prerequisite for CritterWatch's SQL Server hard-delete support (JasperFx/CritterWatch#68).