[CalendarServer-dev] Some questions

Wilfredo Sánchez Vega wsanchez at apple.com
Tue Sep 5 19:04:42 PDT 2006

   The server is written in Python, yes.  Though one should note that  
not all of the code being executed is python.  For example, SSL  
processing is done by OpenSSL via a Python shim (PyOpenSSL).  So SSL  
stream processing is all in C code.

   So while the CalDAV server logic is Python, it is not a pure Python  

   Anyway, as to performance.  First off, we are not writing the  
server to scale to a million users.  This isn't an implementation for  
the Google or Yahoo! servers of the world to deploy; it's meant for  
business use, and thousands, not millions, or users.  Not that we'd  
mind scaling to millions, but it's not a priority for this code today.

   One of the pros of using Python is that it's easy.  It's easy to  
write, it's easy to read, and it's easy to maintain.  We hope that  
this means less bugs over time, and more flexibility to add the  
features that people want in the future.

   It is a single process, though we think it'll be straightforward  
(and important) to ensure that multiple servers can run concurrently  
against a shared data store.  You could then run multiple instances on  
one host, or on several hosts using a a storage area network/network  
attached storage.

   CalDAV doesn't yet have a server-to-server protocol to enable  
clusters with disjoint storage, but there is work going into that area  
in CalConnect.  That's not strictly necessary if we wanted to do  
clustering, but we haven't started any such work yet.

   I don't know what you mean by reminders, but CalDAV and iCalendar  
do allow for alarms.  How alarms get passed on to users is up to  
clients, though.  The server doesn't take any specific action when  
alarms fire; it simply stores them.

   All of our documentation is on our web site.  I know it's limited  
right now, but we'll be adding to it over time.


On Aug 29, 2006, at 12:01 PM, Ciny Joy wrote:

> Hi,
> 	We have recently started thinking about impleenting a calendar server
> with CalDAV support. To get a better idea, I have been looking at the
> Open source implementations out there. It was exciting to hear the  
> Apple
> announcement of a CalDAV server with even scheduling implementation.
> 	I briefly browsed through the code and I had some questions. Am I  
> write
> in understanding that the entire server is written in Python? What are
> the pros and cons of doing so? Just wondering if there will be any
> performance impacts if you had say, a million users.
> Is it one single process that handles everything from the http  
> requests
> to db operations?
> On a different note, as far as I could see "reminders" are not defined
> in the CalDAV spec. Do you do server side reminders? Is there a  
> separate
> process taking care of this?
> 	Do you have an architecture overview spec I could look at?
> Thanks,
> Ciny
> _______________________________________________
> calendarserver-dev mailing list
> calendarserver-dev at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/calendarserver-dev

More information about the calendarserver-dev mailing list