++1
> On May 31, 2016, at 1:21 AM, Adi Raju <adi.r...@confluxtechnologies.com>
> wrote:
>
> I would expect there would be X number of microservices which are core/heart
> of the application which no deployment can do away with. I would suggest
> these to be released as a single package/release.
>
> All other microservices should be optional based on the deployment/end user
> requirements. They can be released individually by mentioning the minimum
> core dependency version.
>
> This suggestion would mean multiple projects under apache fineract, but I
> feel this is where we are heading by keeping separate repo for each
> microservice.
>
> Regards,
> Adi
>
> -----Original Message-----
> From: Myrle Krantz [mailto:mkra...@mifos.org]
> Sent: 30 May 2016 23:43
> To: dev@fineract.incubator.apache.org
> Subject: Re: Microservices release question
>
> We should create a docker image and host it on docker hub for small
> organisations. These users would install docker, and run a single command to
> start the system. They wouldn't even have to download our compiled source
> directly; docker does that for you. We would need to figure out how to make
> installing a valid certificate for their domain in their docker image easy.
>
> The answer to that question for larger organisations who want to take
> advantage of the scalability that microservices offer, particularly ones
> which wish to adjust the code before deploying it in their environments, will
> depend on how we answer the question I started this thread with.
>
> Greets,
> Myrle
>
>
> *Myrle Krantz*
> Solutions Architect
> RɅĐɅЯ, The Mifos Initiative
> mkra...@mifos.org | Skype: mkrantz.mifos.org | http://mifos.org
> <http://facebook.com/mifos> <http://www.twitter.com/mifos>
>
>
> On Mon, May 30, 2016 at 6:46 PM, Ashok <as...@confluxtechnologies.com>
> wrote:
>
>> Hi Myrle,
>>
>> Release process looks very interesting and same time highly confusing,
>> I am wondering how small organisations or independent implementors
>> will understand this process to carry out their implementations
>> without much hurdles.
>>
>> Regards,
>> Ashok
>>
>> On Mon, 30 May 2016 at 7:57 PM, Myrle Krantz <mkra...@mifos.org> wrote:
>>
>>> Hi Fineract,
>>>
>>> I'm starting a new thread for a question which Roman asked in the
>> multiple
>>> repos thread. He asked how we'd like to release if we are dividing
>>> our code into microservices. Assuming we want to do clockwork
>>> releases,
>> there
>>> are three major alternatives:
>>>
>>> 1.) Release each microservice version separately, on its own
>>> schedule,
>>> 2.) Release a set of microservices as one release which are
>>> compatible
>> with
>>> each other, taking the newest service version from the leafs of the
>>> dependency tree, or
>>> 3.) Release a set of microservice versions as one release which are
>>> compatible with each other, taking the newest service from the root
>>> of
>> the
>>> dependency tree.
>>>
>>>
>>> 2 and 3 probably require a bit more background to understand:
>>> Microservices will be dependent on each other. For example all
>>> services will depend on the tenant provisioning service, and on the
>>> service for managing users and permissions.
>>>
>>> So let's say you have services A, B, and C in multiple versions
>>> which depend on each other like this:
>>>
>>> Av1 -> {} (no dependencies)
>>> Av2 -> {}
>>> Av3 -> {}
>>> Av4 -> {}
>>>
>>> Bv1 -> Av1
>>> Bv2 -> oneOf(Av1, Av2)
>>> Bv3 -> oneOf(Av2, Av3)
>>> Bv4 -> oneOf(Av3, Av4)
>>>
>>> Service C: depends on B
>>> Cv1 -> Bv1
>>> Cv2 -> oneOf(Bv1, Bv2)
>>>
>>> In solution one, we'd release a new version of A as soon as it was
>>> complete, even if none of the other services were updated and still
>>> required older versions of A.
>>>
>>> In solution two, we'd release a source code tar ball containing Cv2,
>>> Bv2, and Av2. Even though Av3 and Av4 exists we wouldn't include it
>>> in a release until all services were updated to be compatible with it.
>>>
>>> In solution three we'd release a source code tar ball containing
>>> Av4, and Bv4. We wouldn't include any version of C because there
>>> would be none which is transitively compatible with the latest
>>> version of A. If C is a service which not everyone deploys, this may be
>>> acceptable.
>>>
>>> What do you guys think? Keep in mind that in Apache the release is
>>> a source code release. It's signed and it should include all the
>>> source code...
>>>
>>> Greets,
>>> Myrle
>>>
>>>
>>>
>>> *Myrle Krantz*
>>> Solutions Architect
>>> RɅĐɅЯ, The Mifos Initiative
>>> mkra...@mifos.org | Skype: mkrantz.mifos.org | http://mifos.org
>>> <http://facebook.com/mifos> <http://www.twitter.com/mifos>
>>>
>> --
>> Regards,
>> Ashok
>>
>> Sent from mobile device
>>
>