Para grupos e varias marcas
Varias empresas, unha instalación, sen clientes compartidos
Os grupos adoitan resolver isto dúas veces mal: ou cinco instalacións separadas e cinco de todo o demais, ou unha instalación e unha promesa solemne de que a aplicación sempre filtra correctamente. A primeira é cara. A segunda é unha promesa, e as promesas non son un modelo de seguranza.
Se xestionas máis dunha empresa —unha holding con filiais, unha franquía, dúas marcas dirixidas a mercados distintos, unha axencia e aquilo que a axencia escindiu— xa coñeces a forma do problema. As marcas comparten persoas, ferramentas e un departamento financeiro. Non comparten clientes, e non deben parecer que o fagan.
iKonekt xestiona todas desde unha soa instalación, e a separación entre elas mantena a base de datos e non o código. Esa distinción soa académica ata o día en que deixa de selo.
Por que importa a capa
Un filtro a nivel de aplicación é unha frase nunha consulta. Funciona mentres cada consulta que se escriba nunca a conteña —incluída a que se escriba con présa, a que escriba o desenvolvedor novo e a que se escriba para un informe que só se ía usar unha vez.
Empurra a fronteira cara á base de datos e a aritmética invértese. A política execútase en cada lectura e cada escritura, por debaixo de todo. Unha consulta que esquece a empresa non devolve as filas erróneas; non devolve ningunha. O modo de fallo convértese nunha pantalla baleira e nun desenvolvedor confuso, que é o modo de fallo correcto.
As pantallas baleiras son unha funcionalidade. Preferimos explicarlle unha pantalla baleira a un dos nosos propios enxeñeiros que explicarlle unha lista de clientes a dous clientes que non esperaban coñecerse.
- 1Clientes e fíosDelimitados. Un vendedor da marca A non pode chegar aos da marca B, por construción e non por configuración.
- 2Reclamacións sobre un cliente«Xa temos esta conta» é un bloqueo que se mantén por empresa — así dúas marcas poden traballar o mesmo mercado sen chocar.
- 3Prompts e axustesCada empresa edita os seus. O único lugar onde isto se compartiu algunha vez era un erro, e é o erro do que este sistema se sente máis orgulloso de ter atopado.
- 4Programas de sociosUn módulo por empresa, non un global que todos herden.
Fronteira aplicada por debaixo da aplicación
O que un grupo realmente pode compartir
A separación non é illamento polo illamento. O que vale a pena compartir nun grupo compártese deliberadamente, e na súa maioría son as cousas aburridas — que é exactamente o correcto, porque nas aburridas é onde vive o custo duplicado:
- Unha instalación que executar e actualizar. Un despregue, un conxunto de credenciais que coidar, unha soa cousa que manter parcheada.
- Un equipo de persoas, con sombreiros distintos. Unha persoa pode traballar en máis dunha empresa; o que non pode facer é ver ambas á vez mediante unha consulta que esqueceu preguntar.
- Un conxunto de hábitos. A forma en que se asigna unha oportunidade, en que se escribe unha nota, en que un traballo chega a ser factura — apréndese unha vez, aplícase en todas partes, o que reduce a incorporación a unha mañá aproximadamente.
- Unha relación co resto da familia. castomAPI por debaixo, a mesma conta, os mesmos conectores — configurados por empresa onde importa.
A pregunta que un grupo sempre fai en segundo lugar
«Podemos facer informes de todas elas?» Si — desde o punto de vista propio do grupo, deliberada e explicitamente, e non como efecto colateral dunha fronteira con fugas. A distinción é todo o deseño: cruzar a liña ten que ser un acto que alguén realizou a propósito, coa autoridade para facelo. Nunca debe ser algo que un identificador extraviado poida conseguir por accidente.
E a pregunta que fan en terceiro lugar: «que pasa se vendemos unha das marcas?» Unha fronteira que mantén a base de datos é tamén unha fronteira da que podes extraer unha copia limpa. Non é unha coincidencia — separación e portabilidade son a mesma propiedade vista desde dúas reunións distintas.
Baixo o chan
O que sostén a liña, especificamente
Non unha afirmación, unha lista. Se un provedor non pode producir esta lista sobre o seu propio produto, iso merece notarse.
26
Táboas que levan a súa empresa, coa comprobación forzada a activada e non simplemente dispoñible.
72
Políticas, escritas unha a unha para que cada unha fose lida por unha persoa, non xeradas nun bucle.
942
Probas, executadas contra unha base de datos reconstruída dende cero cada vez que cambia calquera cousa.
0
Empresas por defecto. Unha petición sen ámbito lanza un erro antes de chegar aos datos — non hai unha alternativa que poida esquecerse de desactivar.

«Cinco empresas, cinco instalacións, cinco facturas túas.»
Unha instalación. Cinco límites que a base de datos mantén.
Persoas compartidas, hábitos compartidos, plataforma compartida — e nin un só cliente compartido. Cruzar esa liña ten que ser algo que unha persoa fixo a propósito, nunca algo que un identificador xestionou por accidente.
Como se constrúe a separación →