Hi Benoit,

La 05.07.2020 07:32, Tellier Benoit a scris:
>
> Le 02/07/2020 à 23:03, Eugen Stan a écrit :
>> Hello David,
>>
>> [...]
>>
>> Agian, I do think protocols should be independent since they have
>> different rules and share only some technical aspects.
> +1
>
> Actually IMAP is independent.
>
> LMTP is based on SMTP implementation.
>
> A current limitation of LMTP is that it do not apply the mailet
> processing pipeline.
LMTP is based on SMTP so no surprise there.
>
> POP3, SMTP and ManageSieve relies on the common protocols-api.
>
>> The 'business' rules should trump over the technical part, but the code
>> is quite old on that part and it works so I guess no-one put the work to
>> change it much.
> +1 SMTP, LMTP and POP3 works globally well.
>
>> I believe each protocol is independent and should build to an
>> independent server (SMTP, IMAP, POP3, JMAP) .
> That statement is more questionable IMO.
>
> An IMAP server without an SMTP server will not be able to receive mails.
>
> While I agree on differentiating servers on the role they play (Mail
> Exchange, Mail Transfer, Mail Delivery, etc...) I believe fully
> splitting protocols into independent servers is not desirable.
>
> Today JAMES implementations makes sens to implement a Mail Transfer
> agent, and mail processing (achievable with s/jpa-smtp/Mail Processing
> server/) and for Mail Delivery (all other flavors). I believe we are not
> mature enough for mail exchange.
>
> Maybe the intended role in the mail architecture could be added to the
> Antora documentation?

I believe you make the assumption that people use and want to use the
full plethora of protocols we have in James.

Sort of "All or nothing" approach.

Why do you think it is so?

I would argue that we should make little assumptions about how people
deploy their infrastructure.

Maybe I have an existing infrastructure that I know and trust for SMTP
and I just want to use the IMAP server from James.

Examples:

1. I use Amazon Simple Email Service (or Sendgrid or Mailgun) for
sending emails and I just want to be able to customize the IMAP/JMAP
experience and control how I store emails.

2. I could use James SMTP as a Gateway for my existing IMAP / Webmail setup.

3. I could use James SMTP as a Relay for my marketing SaaS platform.


But that is not the main argument for having them separate.

The main argument IMO is that the protocols are quite complex and having
the ability to work on just one protocol at a time has significant
advantages:

* Lower cognitive effort - I only need to care about this specific
protocol and it's implementation details, not the other protocols.

  This is one huge benefit.

* Faster development feedback cycle - If I work on IMAP or SMTP I should
get away with running the tests only for that part.

* Less risk - If I work and break SMTP - the other parts should work.
With the current project structure - it can be hard to say.

* Easier to adopt by new people - If people care only about SMTP, LMTP
or IMAP - they can contribute only to that. The entry barrier will be
smoother than what we have now.

* Easier to compose and adapt for new and interesting projects - If we
package them independently and together in a single product (Advanced
Server) we have a showcase of how you can do that. It will be clear that
they are meant to be used in both ways.


Having them as separate projects may have the downside of integrating
them together as integrating them requires some form of glue.

The good side is that we already pay for this integration effort now :).

We will have to do the effort of splitting them apart while also keeping
the full version.

This is doable and while it will take time it's not a hard problem IMO.


Our way of using James is not the only way.


>> [...]
>>
>> I don't believe the code is super clean but it does work and is quite
>> efficient and fast.
> Nice explanation!
>
> +1 that's a foundation we may not want to challenge too much.

Challange all foundations!

(one at a time, when it's time comes :D )

>> NOTE: Netty should be upgraded to the latest version, I can do that once
>> we are done with Gradle.
> +1 <3
>
> Likely a huge effort though...
You questioning my determination ?! (joke)

In time I will change the universe :D .


-- 
Eugen Stan
+40720 898 747 / netdava.com

<<attachment: eugen_stan.vcf>>

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to