Aye, this is some ways down the road now - quite a few projects on this base template. Only real complaint is:
- Submodules get out of date where data is concerned - Some submodules contain a lot of data and so bloat deployment (e.g. maxmind) - cgo dependency leading to: can't use a blank docker container, slower to compile and local installation dependencies - something like site indexing for search does not share data so every concurrent instance builds at runtime after a deploy - upgraded submodules may take a while to get to all the projects, leaving project feature inconsistent I'm inclined to move out anything which has changing/largish data sets and centralize search (though during a rolling deploy this could be an interesting disaster). On Saturday, March 11, 2017 at 10:05:49 PM UTC-8, Matt Ho wrote: > > If you're just starting out the project, by all means start with the > monolith where everything is together. If you decide it's necessary, over > time you can split out the project into what you've discovered you need. > > Trying to abstract the components you think you'll need too early is a > good recipe for heartache. > > M > > > On Saturday, March 11, 2017 at 9:00:43 PM UTC-8, James Pettyjohn wrote: >> >> I'm looking at the pros and cons of how to architect a web project. >> >> 1) One is a single go project for a site. No service dependencies for the >> backend at all. Certain aspects of this means a cgo dependency which is not >> ideal as it complicates containerization and slows build time. One plus to >> this is the simplicity in development - the entire project is self >> sufficient and tests are easily checking everything - thought compilation >> and startup suffer. >> >> 2) Another means would be to split out portions of the project. This adds >> dev complexity as it requires more services to enable parts of the server, >> or run at all. Coordination of service versions becomes an issue. But the >> services, now being centrally located, can be deployed and result in >> updates to all services using it. I think from the ops perspective this >> could be more efficient as you don't inherit the overhead in all projects. >> >> >> Opinions on the above? Another approach entirely? >> >> >> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.