Tibor
Let me please share a personal opinion.
To move this conversation forward, i would kindly ask to refrain from 
judgements and speculations about our project. Speaking on behalf of community 
is a certain responsibility after all. I guess your knowledge about our 
platform, it's architecture, cases, requirements, infrastructure is not so 
huge. In general judgements and speculation without basement is a very thin ice 
on which it is very easy to lose credibility. Thanks for sharing with us such 
an important concepts like microservices, nosql and all over important words. I 
believe that was done with good intentions, not with intention to insult. 

The second - as a Maven users, we came to community with (a) our case and b 
(proposal). Speaking to users that your case is wrong, irrelevant, etc is 
counterproductive as such. Framing all customers in your vision is a perfect 
way for product stagnation. Ignoring cases which customers bring to you is a 
way to miss opportunity for product growth. 

Productive would be to focus on our needs and how maven could address it. 
Another constructive input will be guidance on a proper feature implementation 
and next steps. Speculating about the project does not help at all and no the 
topic we are interested in. 

Thank you
Aleks

On 2019/09/14 20:37:03, Tibor Digana <tibordig...@apache.org> wrote: 
> Hello Maximilian,
> 
> So now the next step is to break the traditional dependencies in Maven and
> isolate the services via web-services, e.g. JAX-RS or JAX-WS and you would
> not "touch" the POMs.
> You need to use Logstash, Kibana, Elasticsearch, and Zipkin because the
> logs won't be aggregated without these frameworks.
> This would require you to spend some time and develop automatic deployment
> and reliable CI.
> 
> The monolith would become on infrastructure level but not on code level.
> There you can write integration tests in every service. The input XML/Json
> received from another service can be a mock and mock data. The service and
> it's project as well as the tests still become isolated on project level.
> The tests would become a documentation, and the data (XML/Json) would be a
> specification for another team.
> In this position a particular functionality would appear on the right
> place. Shared data won't become a workaround anymore. Sharing something may
> easily happen in the monolith project.
> 
> The worst situation is if you share the database between the services
> because there you really have to deploy many services.
> One way is for instance an architecture where you have one NoSql database
> for one webapp, and RDBMS as master data.
> Each webapp has another NoSql database.
> Then the services would read only from one NoSql and write to RDBMS master
> data + JMS streaming the data back to NoSql databases via data/event bus.
> 
> It is more about infrastructure and such isolation.
> Since every app has isolated database, then not all services have to change
> only because a new feature required database migration to new tables and
> relations.
> The probabily of a change in the service would be smaller.
> 
> Then you have got DDD, CQRS but not the Event Sourcing - only partial.
> 
> Cheers
> Tibor17
> 
> 
> On Sat, Sep 14, 2019 at 9:35 PM Maximilian Novikov <
> maximilian.novi...@db.com> wrote:
> 
> > Tibor,
> >
> > We understand your position.
> >
> > We moved from separated SCM to one SCM. We can move back, but we don't
> > want this.
> >
> > In single SCM we like:
> > 1. Atomic commits
> > 2. Single point of responsibility.
> > If someone makes incompatible change in shared library, he is responsible
> > to update all usages. At first look It can be considered as slowness in
> > development, but it helps us to avoid growing of technical debt. We never
> > get in situation when projects A, B, C, D... depends on different version
> > of shared library and we need to make major upgrade, it can block release
> > of some apps and etc...
> >
> > Now we releasing 20+ clients apps and 50+ backend components every week or
> > even often. With multiple SCM we will need to hire a team of release
> > managers and build engineers to coordinate and support this.
> >
> > Again, we are don’t selling our approach. We implemented the missing for
> > us feature.
> >
> > PS. Just thing why commercial products like Gradle Maven Extensions
> > appeared.
> >
> >
> > From: Tibor Digana <tibordig...@apache.org<mailto:tibordig...@apache.org>>
> > Date: Saturday, 14 Sep 2019, 9:43 PM
> > To: Maven Developers List <dev@maven.apache.org<mailto:
> > dev@maven.apache.org>>
> > Subject: Re: [VOTE] Maven incremental build for BIG-sized projects with
> > local and remote caching
> >
> > Alexander,
> > Enrico is really right. Today it is Microservices and there every
> > microservice is in a separate SCM repo.
> >
> > It was just only an example with Microservices but in my experiences you
> > can always find the lower bound modules in the hierary which do not change
> > so much and segragate them in another SCM repos. Those should undergo the
> > release process, share release versions and avoid sharing SNAPSHOT
> > versions.
> >
> > You can find the top roots which are actually applications. If you have 10
> > WAR files as a result of the build and all of them should be deployed, then
> > there is a strong reason to separate them in separate SCM repos.
> >
> > Then this separation concept will guide you to isolate the middle layers
> > into isolated services as JAR files. And then you endup with Microservices,
> > SOA services and not JAR files or you will be much closer to them. the huge
> > monolith project is gone.
> >
> > All the development process will be faster and more flexible than it was
> > before. Just try!
> >
> > Cheers
> > Tibor17
> >
> > On Sat, Sep 14, 2019 at 5:23 PM Alexander Ashitkin <
> > ashitkin.a...@gmail.com>
> > wrote:
> >
> > > HI Enrico
> > > Thanks for feedback. that's a side discussion for best approach for
> > > projects layouts. Monorepo has own own advocates and it is easy to find
> > > posts describing why google, microsoft or facebook go monorepo.
> > > Unlike of way of thought, we are ready to go globally in case of
> > emergency
> > > scenario. If say zero-day vulnerability is discovered in some of
> > low-level
> > > widely reused core libraries, we need just one click to build/test/deploy
> > > and safely go live globally with whole estate updated on scale of
> > thousands
> > > of processes. And you know, there are people in the world who think that
> > > scattered across small repos codebase is difficult to maintain and
> > > snapshots are evil. It all depends.
> > > Honestly, i think it will be it's a kind of reversed approach them you
> > > build system defines how your software development processes work. Google
> > > has own vision and just implemented Bazel and this is correct approach.
> > Btw
> > > Bazel is perfect for such scenario, but costly to migrate on for existing
> > > project.
> > >
> > > So if you choose monorepo as we did it is normal to work just on a part
> > of
> > > project. You just need a way to deal with scalability challenges:
> > > a) you hit hardware and infrastructure limitations and need to address
> > > them in some way.
> > > b) need to have incremental build so you can work on subpart of project
> > > but contribute to shared codebase
> > >
> > > Sincerely yours, Aleks
> > >
> > > On 2019/09/14 08:41:37, Enrico Olivelli <eolive...@gmail.com> wrote:
> > > > I feel that in general having an huge monolithic project is kind of a
> > > > project-smell.
> > > > Btw I have some big project with 100+ modules so I can see your pain.
> > > > In the daywork experience a single developer doesn't work on all of the
> > > > modules but usually you touch 1-2 modules and maybe some
> > > integration/system
> > > > test.
> > > > If you need to rebuild the full project for every change maybe there is
> > > > something wrong with the overall design.
> > > >
> > > > I think you have you motivations for your layout, so let's talk about
> > > your
> > > > proposal.
> > > >
> > > > If you have a way to split your project in subsystems you can use some
> > > > shared remote repository for deploying snapshots in order to share
> > > > intermediate results with other developers
> > > >
> > > > If your goal is to be ready for releases I don't get your point.
> > Usually
> > > > you work with snapshots and for a release you have to rebuild one time
> > > and
> > > > only once the full codebase in order to ensure that you a consistent
> > > build
> > > > of the project.
> > > > With all of this kind of temporary caches how do you ensure that the
> > > final
> > > > artifacts are the intended ones?
> > > >
> > > >
> > > > Beside note: this is not a real VOTE thread
> > > >
> > > > Just my 2 cents
> > > >
> > > > don't get me wrong, I admire your will to improve Maven ecosystem with
> > > this
> > > > cool feature! Thank you for contribution your work. We will try to get
> > > the
> > > > best
> > > >
> > > > Enrico
> > > >
> > > > Il sab 14 set 2019, 08:29 Laird Nelson <ljnel...@gmail.com> ha
> > scritto:
> > > >
> > > > > On Fri, Sep 13, 2019 at 11:01 PM Alexander Ashitkin <
> > > > > alexander.ashit...@db.com> wrote:
> > > > >
> > > > > > This feature is true incremental build – you don’t build modules
> > > which
> > > > > > were not changed at all and build only modified/changed ones.
> > > > > >
> > > > >
> > > > > Suppose module B depends on module A and I change A.  Does B get
> > > rebuilt in
> > > > > your system?
> > > > >
> > > > > Best,
> > > > > Laird
> > > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > > For additional commands, e-mail: dev-h...@maven.apache.org
> > >
> > >
> >
> >
> > ---
> > This e-mail may contain confidential and/or privileged information. If you
> > are not the intended recipient (or have received this e-mail in error)
> > please notify the sender immediately and delete this e-mail. Any
> > unauthorized copying, disclosure or distribution of the material in this
> > e-mail is strictly forbidden.
> >
> > Please refer to https://www.db.com/disclosures for additional EU
> > corporate and regulatory disclosures and to
> > http://www.db.com/unitedkingdom/content/privacy.htm for information about
> > privacy.
> >
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to