Customer Partitions

Learn how customer partitions helps you build scalable customer engagement applications on the Elarian Framework.

Customers on Elarian are scoped to organizations, this means each org can only have one customer with a unique customerNumber. A customer can however have multiple customer numbers representing different engagement channels, but no two customers can share the same customer number. This is not ideal for applications with multi tenancy requirements, e.g an application could deal with customerA for businessA but also need to deal with customerA but for businessB. In this scenario, Elarian allows you to separate the two instances of customerA using partitions.

You can indicate a partition at two points, when originating and receiving traffic.

Partition while originating traffic

...

const customerA = new client.Customer({
  number: 'CUSTOMER-A-PHONE-NUMBER',
  provider: 'cellular'
  partition: 'YOUR-FIRST-PARTITION'
});

const otherCustomerA = new client.Customer({
  number: 'CUSTOMER-A-PHONE-NUMBER',
  provider: 'cellular'
  partition: 'YOUR-OTHER-PARTITION'
});

await Promise.all([
  customerA.sendMessage(...),
  otherCustomerA.sendMessage(...)
]);

// customerA and otherCustomerA are now two distinct entities
// even though they share a customerNumber

Partition while receiving traffic

Partitions while receiving traffic are configured on your engagement channels through the dashboard. This let's Elarian know what partition to apply when incoming traffic is received on a particular channel.