tzulitai commented on a change in pull request #54: [FLINK-16515][docs] Refactor statefun documentation for multi-language SDKs URL: https://github.com/apache/flink-statefun/pull/54#discussion_r390710405
########## File path: statefun-docs/docs/concepts/logical.rst ########## @@ -0,0 +1,79 @@ +.. Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +.. _logical-functions: + +################# +Logical Functions +################# + +Stateful Function's are allocated logically, which means the system can support an unbounded number of instances with a finite amount of resources. +Logical instances do not use CPU, memory, or threads when not actively being invoked, there is no theoretical upper limit on the number of instances that can created. +Users are encouraged to model their applications as granularly as possible, based on what makes the most sense for their application, instead of desigining applications around resource constraints. + +.. contents:: :local: + +.. _address: + +Function Address +================ + +In a local environment, the address of an object is the same as a reference to it. +But in a Stateful Function's application, function instances are virtual and their runtime location is not exposed to the user. +Instead, an ``Address`` is used to reference a specific stateful functions in the system.. + +.. code-block:: proto + + syntax = "proto3"; + + message Address { + + message FunctionType { + string namespace = 1; + string name = 2; + } + + FunctionType function_type = 1; + string id = 2; + } + + +An address is made of two components, a ``FunctionType`` and ``ID``. +A function type is similar to a class in an object-oriented language; it declares what sort of function the address references. +The id is a primary key, it scopes the function call to a specific instances of the function type. + +When a function is being invoked, all actions - including reads and writes of persisted values - are scoped to the current address. Review comment: ```suggestion When a function is being invoked, all actions - including reads and writes of persisted states - are scoped to the current address. ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services