1. A non-transitory computer storage storing a software portion of a computing system comprising one or more processors, the software portion being for causing the one or more processors executing the software portion to perform a method of implementing an expandable distributed core architecture (“DCA”), the method comprising: obtaining, by the computing system, requirements for DCA operation, the requirements comprising first requirements for the expandable DCA and second requirements for an expanded DCA, the first requirements comprising information on a number of user ports for the expandable DCA, the second requirements comprising information on a number of user ports for the expanded DCA, wherein the number of user ports for the expanded DCA is higher than the number of user ports for the expandable DCA; determining, by the computing system, a configuration of the expandable DCA based on the first and second requirements and on an optimality objective, wherein determining the configuration comprises using the information on the number of the user ports for the expandable DCA and the information on the number of the user ports for the expanded DCA to determine a number of spine switches for the expandable DCA, a number of leaf switches for the expandable DCA, and direct interconnections between the spine and leaf switches for the expandable DCA; wherein the configuration is for the expandable DCA corresponding to the first requirements but not the second requirements, but the configuration takes into account the second requirements to provide expandability of the expandable DCA to the expanded DCA with the expanded DCA including all of the spine and leaf switches of the expandable DCA and all of the direct interconnections between the spine and leaf switches of the expandable DCA, the configuration requiring at least one of the spine and leaf switches of the expandable DCA to have at least one spine or leaf port unused in the expandable DCA but used for interconnection between a spine switch and a leaf switch in the expanded DCA; wherein the optimality objective comprises at least one of: low cost; high throughput; high speed; minimal amount of switches; minimal amount of routing components.