This document discusses concurrent programming in Java and introduces the Jcc programming model as an alternative. Jcc replaces threads with vats that execute single-threadedly. Communication between vats uses ports to pass immutable objects. Within a vat, promises (=typed logical variables) and watchers allow constraints-based concurrency similar to timed default concurrent constraint programming. The document uses a bank account application example to illustrate vats, ports, promises, and watchers in Jcc.